希尔排序缩小增量排序

希尔排序是直接插入排序的优化不稳定,nlogn

#include<iostream> using namespace std; int r[100]={0}; int n; void ShellSort(){ int d=n/2;//间隔根据实际情况取得 while(d>=1){ for(int i=d+1;i<=n;i++){ r[0]=r[i]; int j=i-d; while(j>0&&r[0]<r[j]){ r[j+d]=r[j];//后移 j=j-d; } r[j+d]=r[0]; } d=d/2; } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>r[i]; ShellSort(); for(int i=1;i<=n;i++) cout<<r[i]; return 0; }

浙公网安备 33010602011771号