排序(二)
来源:互联网 发布:淘宝夜鹰 编辑:程序博客网 时间:2024/06/07 12:37
3.插入排序1)直插void InsertSort(){ int i,j; for(i=1;i<n;i++) //将后面元素依次向前比较插入 if(a[i].key>a[i-1].key){ a[0]=a[i]; for(j=i-1;a[0].key>a[j].key;j--) a[j+1]=a[j]; //后移元素 a[j+1]=a[0]; //插入最终位置 }}时间复杂度O(n^2),空间复杂的O(1)简单直接,算法稳定2)折半插入void InsertSort(ElemType a[],int n){ int i,j,low,high,mid; for(i=2;i<=n;i++){ a[0]=a[i]; //a[i]暂存到a[0] low=1;high=i-1; while(low<=high){ mid=(low+high)/2; if(a[mid].key>a[0].key) high=mid-1; //查找左半字表 else low=mid+1; } for(j=i-1;j>=high+1;j--) a[j+1]=a[j]; //统一后移 a[high+1]=a[0]; }}时间复杂度O(n^2),空间复杂度O(1)减少了比较次数为O(nlogn),算法稳定
阅读全文
0 0
- 排序(二)
- 排序二--堆排序
- 排序(二)-冒泡排序
- 排序(二)---希尔排序
- 排序二--堆排序
- 排序二:希尔排序
- 排序二 快速排序
- 排序二 选择排序
- 排序之二、冒泡排序
- 排序之二:希尔排序
- 排序算法《二》选择排序
- 排序算法(二):合并排序
- 排序之二-----选择排序
- 排序(二):希尔排序
- 排序算法二:选择排序
- 排序算法(二):堆排序
- 排序算法二:选择排序
- 排序(二)快速排序
- session & cookie详解
- Java邮件开发前期准备之DOS下用SMTP发送邮件测试
- linux系统编程-read()write()函数分析
- html5以及jQuery实现本地图片上传前的预览
- 局部指针变量为什么可以正确返回?
- 排序(二)
- Java实现单链表的排序
- javascript学习(十六)— 浏览器对象
- linux安装mysql
- spark-submit运行jar包脚本命令
- (16)视图(view)
- 浮动元素引起的问题和解决方法
- markdow-文档中图片居中
- 杭电acm 1305Immediate Decodability(字典树)