#include<iostream>
using namespace std;
//希尔排序
int nums[155];
//希尔排序
void ShellSort(int *nums,int n){
int j;
for(int d=n/2;d>=1;d/=2){ //步长
for(int i=d+1;i<=n;i++){ //插入排序
if(nums[i]<nums[i-d]){
nums[0]=nums[i]; //nums[0]暂时存储要插入的元素
for(j=i-d;j>0&&nums[j]>nums[0];j-=d){
nums[j+d]=nums[j];
}
nums[j+d]=nums[0];
}
}
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>nums[i];
ShellSort(nums,n); //希尔排序
cout<<"排序后序列为:";
for(int i=1;i<=n;i++)
cout<<nums[i]<<" ";
return 0;
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47511190/article/details/120003285
内容来源于网络,如有侵权,请联系作者删除!