希尔排序
希尔排序
#include<stdio.h> #include<iostream> using namespace std; int n; void ShellInsert(int a[],int k) { int i,j; for(i=k+1;i<=n;i++) //增量为k,跳跃式移动 { if(a[i]<a[i-k]) { a[0]=a[i]; for(j=i-k;j>0&&a[0]<a[j];j-=k) a[j+k]=a[j]; a[j+k]=a[0]; } } } void ShellSort(int a[],int b[],int t) { int i; for(i=1;i<=t;i++) ShellInsert(a,b[i]); } int main () { int a[100],b[10],i; cin>>n; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) cin>>b[i]; // 增量数组 ShellSort(a,b,n); for(i=1;i<=n;i++) cout<<a[i]<<" "; return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。