摘要: 算法思想:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 设计步骤: 假设有一组无序序列 R0, R1, ... , RN-1。 (1) 我们先将这个序列中下标为 0 的元素视为元素个数为 1 的有序序列。 (2) 然后,我们要依次把 R1, R2, .. 阅读全文
posted @ 2017-07-02 17:06 看雪。 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 设计思想 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。它不要比较关键字的大小。 假设:R {50, 123, 543, 187, 49, 30, 0, 2, 11, 100} 任何一个阿拉伯数,它的各个位数上的基数都是以0~9来表示的。所以我们不妨把0~9 阅读全文
posted @ 2017-07-02 17:01 看雪。 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 描述 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来 阅读全文
posted @ 2017-07-02 16:54 看雪。 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 堆的介绍 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, ... , Rn}当且仅当满足下列关系之一时,称之为堆: (1) Ri  阅读全文
posted @ 2017-07-02 16:47 看雪。 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 算法思想: 将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,得到n/4个长度为4的有序序列;如此反复进行下去,最后得到一个长度为n的有序序列。 实现步骤: “合并”——将划分后的序列段两两合并后排序。 图示: 阅读全文
posted @ 2017-07-02 16:39 看雪。 阅读(289) 评论(0) 推荐(0) 编辑