您的位置:首页 > 运维架构 > Shell

个人学习整理:C++版Shell排序

2014-09-18 17:27 274 查看
/************************Shell排序***********************//*效率估计O(nlog2^n)~O(n^1.5),适用于排序小的列表*//*实质上是一种分组插入方法,希尔排序是不稳定的*/#include using namespace std; void ShellSort(int* pData,int Count) { int gap=Count/2; int i,j; for(;gap>0;gap=gap/2){ for(i=gap;ipData[j]){
int temp=pData[j];do{ pData[j]=pData[j-gap]; j=j-gap;}while(j>=0&&temp<pData[j]);//后移每一个大于pData[j]的数pData[j+gap]=temp;//将pData[j]插入到合适的位置}}}} void main() { int data[] = {20,11,14,31,23,25,3,7,5,6,8,4}; int length=sizeof(data)/sizeof(int);for (int i=0;i<length;i++)cout<<data[i]<<"
";cout<<endl;ShellSort(data,length); for (i=0;i<length;i++) cout<<data[i]<<" ";}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: