个人学习整理: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]<<" ";}
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]<<" ";}
相关文章推荐
- 个人学习整理:C++版交换排序
- 个人学习整理:C++版冒泡排序
- 个人学习整理:C++版插入排序
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- C\C++ 程序员从零开始学习Android - 个人学习笔记(十) - java基础 - 多线程(待续)
- 近期个人学习资料整理
- 安卓个人学习------UI布局组件学习与整理简析
- 菜鸟学习C++练笔之整理搜狗2008版语料库--获取分类语料库
- 如何学习操作系统?——整理篇,非个人感悟
- C\C++ 程序员从零开始学习Android - 个人学习笔记(九) - java基础 - 异常
- c++学习(知识点整理)
- [C++学习]1.字符集的知识(整理版)
- 一些C++连接,以及个人的C++学习总结。
- C++面试题 个人整理
- C++ 学习拾遗 —— 点滴记录C++学习过程中遇到的问题以及整理
- C\C++ 程序员从零开始学习Android - 个人学习笔记(八) - java基础 - 继承、抽象类、接口、内部类(待续)
- 客户端使用COM组件(整理个人学习思路)
- 个人整理的学习前端开发的书目
- C\C++ 程序员从零开始学习Android - 个人学习笔记(二) - java基础 - 从源代码到运行
- 个人学习原创整理