2018年8月29日

摘要: 不稳定 O(nlogn) 大顶堆(从大到小排序):每个结点的值都大于等于其左右孩子的值的二叉树 小顶堆(从小到大排序):每个结点的值都小于等于其左右孩子的值的二叉树 如何排序? 将待排序序列构建成一个小顶堆,堆顶的元素即为所有元素中的最小值 在输出堆顶的最小值之后,调整堆,使剩余的n-1个元素又建成 阅读全文
posted @ 2018-08-29 23:13 dddjp 阅读(140) 评论(0) 推荐(0) 编辑
 
摘要: 不稳定 i从0开始, 第i趟排序中,从n-i个记录中选取关键字第i小的元素,作为有序序列的第i个元素 以此类推,直到有序序列包含所有的待排序关键字 不论什么情况下,时间复杂度:O(n^2) 阅读全文
posted @ 2018-08-29 19:31 dddjp 阅读(115) 评论(0) 推荐(0) 编辑
 
摘要: 针对直接插入排序的改进 缩小增量排序 不稳定 现将待排序序列恩城多个子序列进行直接插入排序,待整个序列基本有序时,再对整个序列进行直接插入排序 子序列不是简单地逐段分割,而是将相隔某个增量的关键字组成一个子序列,在一趟排序完成之后,缩小增量,直到增量为1(即为一次针对所有关键字的直接插入排序) 增量 阅读全文
posted @ 2018-08-29 19:02 dddjp 阅读(220) 评论(0) 推荐(0) 编辑
 
摘要: 稳定 基于移动元素 适合于元素个数较少,基本有序的情况 将关键字序列的第一个关键字看成一个有序的序列,然后将第二个插入到有序序列的合适位置,此时,有序序列长度加一 一次将后面的关键字插入到有序子序列的合适位置,使得有序子序列的长度递增,直到待排序序列的元素插入完 最好:待排序序列有序 O(n) 最坏 阅读全文
posted @ 2018-08-29 12:13 dddjp 阅读(141) 评论(0) 推荐(0) 编辑
 
摘要: 基于交换的排序、不稳定的排序 对冒泡排序的改进 通过一趟排序,将待排关键字分为两部分,其中一部分的全部关键字都小于另一部分的全部关键字,然后分别对这两部分进行快速排序,可以选取第一个关键字为基准,将比它小的放在它之前,将比它大的放在它之后,完成这一趟之后,基准所在的位置就将初始序列分成两部分(一部分 阅读全文
posted @ 2018-08-29 10:57 dddjp 阅读(189) 评论(0) 推荐(0) 编辑
 
摘要: 基于交换的排序、稳定的排序 第一趟:对所有n个元素,从第一个元素开始,比较相邻的两个元素,如果逆序,调换;在第一轮比较完之后,最大(小)的元素就会在最后一个位置 第二趟:对前n-1个元素,从第一个元素开始,比较相邻的两个元素,如果逆序,调换,在第二轮比较完之后,第二大(小)的元素就会在倒数第二位置 阅读全文
posted @ 2018-08-29 09:40 dddjp 阅读(149) 评论(0) 推荐(0) 编辑