c语言数据结构--希尔排序

2023-12-26 20:28:27
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define Max 11
int main(){
	int length;
	cout<<"input the length:";
	cin>>length;
	int data[length+1];
	cout<<"input the array:";
	for(int i=1;i<=length;i++){
		int a;
		cin>>a;
		data[i]=a;
	}
	int d;
	cout<<"input the d -1 stop"<<endl;
	cin>>d;
	while(d!=-1){
		for(int j=1;j<=d;j++){
			int data2[length];
			int k=0;
		for(int i=j;i<=length;i+=d){
			data2[++k]=data[i];
		}
	
		for(int o=1;o<k;o++){
			for(int oo=o+1;oo<=k;oo++){
				if(data2[oo]<data2[o]){
					int temp=data2[oo];
					data2[oo]=data2[o];
					data2[o]=temp;
				}
			}
		} 
		int t=0;
		for(int i=j;i<=length;i+=d){
			data[i]=data2[++t];
		}
	}
	cout<<"print:"<<endl;
	for(int k=1;k<=length;k++){
		cout<<data[k]<<"  ";
	}
	cout<<endl;
	cout<<"input the d -1 stop"<<endl;
	cin>>d;
	}
}
//49 38 65 97 76 13 27 49

文章来源:https://blog.csdn.net/2202_75787160/article/details/135229834
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。