直接插入排序
来源:互联网 发布:mac无法解压zip 编辑:程序博客网 时间:2024/06/05 05:45
排序方法之直接插入排序
作者:小峰
最简单一个直接插入程序,下面首先我为大家讲解一下这个排序算法的主要思想。在排序的使用利用的是顺序存储结构——数组。将序列中的第1个记录看成是一个有序的子序列;从第2个记录起逐个进行插入,直至整个序列变成按关键字有序序列为止;整个排序过程需要进行比较、后移记录、插入适当位置。从第二个记录到第n个记录共需n-1趟。
1.首先定义一个数组,如果数据个数为10,则需要建立一个长度为11的数组,因为第一个空间要用做监视哨的作用。
.从第三个元素(在代码中设为i)开始,与其前面一个元素(i-1)进行比较,如果后面的元素小于前面的(a[i]
#include <stdio.h> int main() { int i,j; int a[10] = {10,9,8,7,6,5,4,3,2,1}; for(i=2;i<=10;++i) if(a[i]<a[i-1]){ a[0]=a[i]; a[i]=a[i-1]; for(j=i-2;a[0]<a[j];--j) a[j+1] = a[j]; a[j+1]=a[0]; } int k; for( k=1;k<=10;k++) { printf("%d ",a[k]); } return 0; }
(1)稳定性
直接插入排序是稳定的排序方法。
(2)算法效率
a.时间复杂度
最好情况:比较O(n),移动O(1);
最坏情况:比较O(n2),移动O(n2);
平均O(n2)
b.空间复杂度
O(1)。
1 0
- 插入排序--直接插入
- 插入排序------直接插入
- 插入排序---直接插入
- 排序:直接插入排序
- 排序---直接插入排序
- 排序 -- 直接插入排序
- 排序---直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序:直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 插入排序--直接插入排序
- 插入排序-直接插入排序
- 最短路径(3)--poj2253(Dijkstra变形题)
- Talloc内存池使用教程——(2)过继一个talloc context
- php源码之路第七章第二节 (语法的实现之语法解析)
- Spark2.0.1 on yarn with hue 集群安装部署(七)livy安装测试
- cpio命令文件备份和恢复
- 直接插入排序
- Java中随机生成字符串
- android 的一些快捷键
- MySQL + KeepAlived 实现 双主复制热备 及HA方案
- thinkphp调用二级栏目(二级分类) 函数+模板 完整代码
- yii2 web service plugin 使用及安装说明
- request和response中文乱码问题
- POI操作Excel详解,HSSF和XSSF两种方式
- Axure 基础控件(1-49)