希爾排序演算法
阿新 • • 發佈:2021-05-06
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
void Shellsort(int pa[],int n){
int temp;
int gap=n/2;
while(gap){
for(int i=gap;i<2*gap&&i<n;i++){
for(int j=i;j<n;j+=gap){
temp=pa[j];
int k=j;
while (j>=gap&&temp<pa[k-gap]){
pa[k]=pa[k-gap];
k-=gap;
}
pa[k]=temp;
}
}
gap/=2;
}
}
int main(){
int item;
int k=0;
int pa[50];
cout<<"輸入以0結束: ";
cin>>item;
while(item!=0){
pa[k]=item;
k++;
cin>>item;
}
Shellsort(pa,k);
cout<< "輸出排序後的元素: ";
for(int i=0;i<k;i++){
cout<<pa[i]<<" ";
}
return 0;
}