#include <iostream>
#include<string>
using namespace std;
/*数组遍历*/
void ListShow(int list[],int length){
for(int i=0;i<10;i++){
cout<<list[i]<<" ";
}
cout<<endl;
}
void ShellSort(int *list,int len){
int incream=len;//增量
int i,j;
int key=0;
do{
incream=incream/3;
for(i=incream;i<len;i++){
if(list[i]<list[i-incream]){
key=list[i];
for(j=i-incream;j>=0&&key<list[j];j-=incream){
list[j+incream]=list[j];
list[j]=key;
}
}
}
}while(incream>1); cout<<"结果:";
ListShow(list,len);
}
int main()
{
int list[10]={56,98,10,84,19, 53,68,73,34,71};
int length=sizeof(list)/sizeof(list[0]);//求数组的长度,C++固定方式
ListShow(list,length);
ShellSort(list,length);
return 0;
}
#include<string>
using namespace std;
/*数组遍历*/
void ListShow(int list[],int length){
for(int i=0;i<10;i++){
cout<<list[i]<<" ";
}
cout<<endl;
}
void ShellSort(int *list,int len){
int incream=len;//增量
int i,j;
int key=0;
do{
incream=incream/3;
for(i=incream;i<len;i++){
if(list[i]<list[i-incream]){
key=list[i];
for(j=i-incream;j>=0&&key<list[j];j-=incream){
list[j+incream]=list[j];
list[j]=key;
}
}
}
}while(incream>1); cout<<"结果:";
ListShow(list,len);
}
int main()
{
int list[10]={56,98,10,84,19, 53,68,73,34,71};
int length=sizeof(list)/sizeof(list[0]);//求数组的长度,C++固定方式
ListShow(list,length);
ShellSort(list,length);
return 0;
}