直接插入排序
来源:互联网 发布:linux重启ntp服务命令 编辑:程序博客网 时间:2024/06/03 20:48
插入排序包括:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。属于稳定排序的一种(通俗地讲,就是两个相等的数不会交换位置) 。
直接插入排序:
最坏情况就是,序列是降序排列,需要进行n(n-1)/2次比较,如下:
void insert1(int *buf, int n) { int i,j; int tmp; int count = 0; for(i=1; i<n; i++) { tmp = buf[i]; j = i-1; while(printf("count:%d\n",++count) && j>=0 && tmp<buf[j]) { buf[j+1] = buf[j]; j--; } buf[j+1] = tmp; }}
最好情况就是,序列已经是升序排列了,在这种情况下,只要进行(n-1)次比较,如下:
void insert2(int *buf, int n) { int i,j; int tmp; int count = 0; tmp = buf[n-1]; j = n-2; while(printf("count:%d\n",++count) && j>=0 && tmp<buf[j]) { buf[j+1] = buf[j]; j--; } buf[j+1] = tmp;}
0 0
- 插入排序--直接插入
- 插入排序------直接插入
- 插入排序---直接插入
- 排序:直接插入排序
- 排序---直接插入排序
- 排序 -- 直接插入排序
- 排序---直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序:直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 插入排序--直接插入排序
- 插入排序-直接插入排序
- c++第五次作业
- Spring Security 4 整合Hibernate 实现持久化登录验证(带源码)
- 面向项目(二)—— visual studio 的使用
- 海康转码
- android游戏开发5-5 实现背景图的沿x轴移动
- 直接插入排序
- javascript作用域链
- 安卓开发基础之java基础中this关键字解析
- android的消息机制之学习笔记
- ubuntu系统root登录
- Linux追求记(1)
- Spark生态之Alluxio学习9---Auuxio(Tachyon)的优点
- STL_学习_vector容器源码解析
- 关于xcode7.3设置启动图片的小提示