#include <bits/stdc++.h>
using namespace std;
void xier_sort(int a[],int n){//a[]是数组,n为长度
int i,j,g;//这里g应该是gap,为了简略一点写g
for(g=n/2;g>0;g/=2){//步长每次n/2折半
for(i=0;i<g;i++){
for(j=i+g;j<n;j+=g){
if(a[j]<a[j-g]){
int t=a[j];//这里t应该是temp,为了简略一点写t
//t为临时变量
int k=j-g;
while(k>=0&&a[k]>t){
a[k+g]=a[k];
k-=g;
}
a[k+g]=t;
}
}
}
}
}
int main(){
int a[15],n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
xier_sort(a,n);
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
//输入10 1 6 7 1 1 2 1 1 1 1
//输出1 1 1 1 1 1 1 2 6 7
return 0;
}
希尔排序详细代码
最新推荐文章于 2024-09-27 20:46:47 发布