摘要:
思路: 通过一趟排序将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,已达到整个序列有序的目的。 复杂度: O(logn) ` ` 阅读全文
摘要:
思路: 将待排序的序列构成一个大顶堆,整个序列的最大值就是堆顶的根节点,将其与数组末尾元素交换,此时末尾元素就是最大的值,然后将剩余的n 1个序列重新构造成一个堆,这样就会得到n个元素中的次小值,如此反复执行,就能得到一个有序序列了 复杂度: O(nlogn) ` ` 阅读全文
摘要:
思路: 先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序 复杂度: O(n3/2) ` ` 阅读全文
摘要:
思路: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止 复杂度: O(n^2) ` ` 阅读全文
摘要:
思路: 两两比较相邻记录的关键字,将较小或较大的数逐步升上去 复杂度: O(n^2) ` ` 阅读全文
摘要:
思路: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 复杂度: O(n^2) 实现一: 实现二: ` ` 阅读全文