八大排序算法之一直接插入排序(C语言)
来源:互联网 发布:lil pump 知乎 编辑:程序博客网 时间:2024/05/21 19:32
概述
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。
当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。
快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;
1.插入排序—直接插入排序(Straight Insertion Sort)
基本思想:
将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
要点:设立哨兵,作为临时存储和判断数组边界之用。
直接插入排序示例:
如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
算法的实现:
它的核心思想为:将一个记录插入到一个已经排序好的表中,以得到一个记录增一的有序表。并且最关键的一点就是它把比当前元素大的记录都往后移动,用以腾出“自己”该插入的位置。当n-1趟插入完成后该记录就是有序序列。
#include
void
//待排序元素用一个数组a表示,数组有n个元素
{
}
void
效率:
时间复杂度:O(n^2).
- 八大排序算法之一直接插入排序(C语言)
- 八大排序算法总结之一(冒泡排序,快速排序,直接插入排序,希尔排序)
- 八大排序算法总结之一(冒泡排序,快速排序,直接插入排序,希尔排序)
- 排序之一:直接插入排序(C语言实现)
- 八大排序算法之直接插入排序
- 八大排序算法-直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法之直接插入排序
- 八大排序算法 之 直接插入排序
- 八大排序算法-直接插入排序
- C语言---排序算法-------直接插入排序(一)
- 开贴聊八大排序算法之直接插入排序(一)
- 八大排序算法(一)直接插入排序
- 八大排序算法(一) 直接插入排序
- 直接插入排序算法--c语言实现
- 【算法】直接插入排序C语言实现
- 算法 直接插入排序 c语言
- 对象引用(浅克隆和深克隆)
- 多线程连接MySql
- Android 中的样式与主题
- springmvc如何通过properties读取配置文件
- 解决百人牛牛在部分电脑中摸牌动画卡顿问题,摸牌时改全部刷新为局部刷新
- 八大排序算法之一直接插入排序(C语言)
- motion estimation
- ADO学习(一)基础理论
- celipse安装tomcat插件,找不到server选项
- go 语言学习网站
- 适配器模式
- Hession学习一
- ADO学习(二).udl文件
- Hibernate中一级缓存和二级缓存使用详解