标签:
#include<iostream> using namespace std; #define SIZE 21 typedef int Sqlist[SIZE]; void ShellInsert(Sqlist &L,int dk,int n) { int i,j; for(i=dk;i<n;++i) { if(L[i]<L[i-dk]) { L[0] = L[i]; for(j=i-dk;j>0 && L[0]<L[j];j-=dk) { L[j+dk] = L[j]; } L[j+dk] = L[0]; } } } void ShellSort(Sqlist &L,int dlta[],int t,int n) { for(int k=0;k<t;++k) ShellInsert(L,dlta[k],n); } void main() { Sqlist L= {0,49,38,65,97,76,13,27}; int dlta[]={5,3,1}; ShellSort(L,dlta,3,8); for(int i=1;i<8;++i) cout<<L[i]<<" "; cout<<endl; }
分析:希尔排序利用到了:
1.直接插入排序记录较少时,直接插入效率可以大大提高。
2.直接插入排序算法简单,n值很小的时候效率高。
标签:
原文地址:http://blog.csdn.net/zr1076311296/article/details/46546717