希尔排序
2015-11-05 09:41
232 查看
// 希尔排序,插入排序的升级版 void XiEr(int* arr ,int length){ int i,j,increment,flag; increment = length; do{ // 跳跃分割的策略:减少待排序记录的个数 increment = increment/3+1; for( i=increment+1 ; i<length ; i++){ // 这里是 i-increment,并且是小于号才是从小到大的排序,详细过程见草稿 if(arr[i]flag && j>=0 ; j-=increment) arr[j+increment] = arr[j]; arr[j+increment] = flag; } } }while(increment>1); for(i=0;i<length;i++){ cout<<arr[i]<<" "; } } int main(int argc,constchar * argv[]) { int arr[] = {9,6,5,7,11,34,2,8,1,10}; int length =sizeof(arr)/sizeof(*arr); XiEr(arr,length); }
相关文章推荐
- c++ 单例模式
- Win10 Mobile预览版10586内部界面曝光 升级需744.97MB
- 基于nginx tomcat redis分布式web应用的session共享配置
- 线程是什么?进程是什么?二者有什么区别和联系?
- 增加tomcat连接数
- Estimate, Estimate, Estimate
- iOS 获取图片视频图库
- Android调用qq聊天、qq、微信等
- spark sql
- 数据持久化And数据库
- 按钮添加网络请求的图片(多线程)(ios自学笔记)
- Xcode7.0代码折叠功能
- 用NEXUS搭建MAVEN私服
- jquery新增,删除 ,修改,清空select中的option
- 批量移动/删除安全组/邮件组
- 批量移动/删除安全组/邮件组
- C#影院售票系统毕业设计(1)
- Android 用代码获取基站号(cell)和小区号(lac)
- 64位ubuntu14.04安装交叉编译器arm-linux-gcc出现没有那个文件或目录
- 伺服驱动器与变频器的区别