上一页 1 ··· 7 8 9 10 11

内部排序->交换排序->起泡排序

摘要: 文字描述 首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(L.r[1].key>L.r[2].key),则将两个记录交换位置,然后比较第二个记录和第三个记录的关键字。依次类推,直至第n-1个记录和第n个记录的关键字进行过比较为止。上述过程称为第一趟起泡排序,其结果使得关键字最大的记录 阅读全文
posted @ 2018-07-25 18:32 LiveWithACat 阅读(238) 评论(0) 推荐(0) 编辑

内部排序->插入排序->希尔排序

摘要: 文字描述 希尔排序又称缩小增量排序,也属于插入排序类,但在时间效率上较之前的插入排序有较大的改进。 从之前的直接插入排序的分析得知,时间复杂度为n*n, 有如下两个特点: (1)如果待排序记录本身就是“正序”时, 其时间复杂度可减少为n。 (2)当待排序记录数很小时,直接插入排序的效率也比较高; 希 阅读全文
posted @ 2018-07-25 18:27 LiveWithACat 阅读(285) 评论(0) 推荐(0) 编辑

内部排序->插入排序->其它插入排序->表插入排序

摘要: 文字描述 和之前的插入排序比,表插入排序可以保证排序过程中不移动记录;因此表插入排序所用的存储结构和之前的顺序存储不同,表插入排序采用静态链表类型作为待排记录序列的存储结构,设数组中下标0的分量为表头结点,并令表头结点记录的关键字取最大整数MAXINT。表插入排序的基本操作仍然是将一个记录插入到已经 阅读全文
posted @ 2018-07-21 19:03 LiveWithACat 阅读(321) 评论(0) 推荐(0) 编辑

内部排序->插入排序->其它插入排序->2-路插入排序

摘要: 文字描述 在折半插入排序的基础上进行改进, 另设一个和待排序序列L相同的数组D, 首先将L[1]赋值给D[0], 数组D中数据是已经排好序的, first指向最小值下标,final指向最大值下标。初始时,first和final值都为0。之后将L的第二个元素开始依次和D[0]比较,大于D[0]的插入到 阅读全文
posted @ 2018-07-21 15:57 LiveWithACat 阅读(211) 评论(0) 推荐(0) 编辑

内部排序->插入排序->其它插入排序->折半插入排序

摘要: 文字描述 和直接插入排序比较,只是把“查找”操作利用“折半查找”来实现,由此进行的插入排序叫做折半插入排序。 示意图 略 算法分析 和直接插入排序比,减少了比较次数,但是移动次数没有变,所以折半插入排序算法的时间复杂度仍然是n*n, 辅助空间为1,是稳定的排序方法。 代码实现 1 #include 阅读全文
posted @ 2018-07-21 14:01 LiveWithACat 阅读(169) 评论(0) 推荐(0) 编辑

内部排序->插入排序->直接插入排序

摘要: 文字描述: 将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表 示意图: 算法分析: 时间复杂度为n*n,辅助存储为1,是稳定的排序方法。 代码实现: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define EQ(a, b) 阅读全文
posted @ 2018-07-21 13:52 LiveWithACat 阅读(252) 评论(0) 推荐(0) 编辑

内部排序(总结篇)

摘要: 1. 内部排序与外部排序的区别: 排序过程中涉及的存储器不同,内部排序所操作的数据都存放于内存;而外部排序所操作的数据量太大以至于不能全部放于内存,会涉及到外存访问。 2. 内部排序算法的稳定性: 待排序的数据中如果有两个相等的数据,经过排序算法之后的先后顺序依据不变的话,则称该排序方法是稳定的,否 阅读全文
posted @ 2018-07-21 13:45 LiveWithACat 阅读(487) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11