摘要: 思想 快速排序 (quick sort)由C. A. R. Hoare在1962年提出。它的基本思想是:选择一个基准数(枢纽元),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都小于或等于基准数,另外一部分的所有数据都要大于或等于基准数,然后再按此方法对这两部分数据分别进行快速排 阅读全文
posted @ 2016-04-10 20:28 gaunthan 阅读(229) 评论(0) 推荐(0)
摘要: 思想 归并排序 (merge sort)是建立在归并操作上的一种有效的排序算法,它以 O(nlogn) 最坏情形运行时间运行。它是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列:即先使每个子序列有序,再使子序列段间有序。若将两个有序表 阅读全文
posted @ 2016-04-10 20:18 gaunthan 阅读(274) 评论(0) 推荐(0)
摘要: 思想 重复地走访要排序的数列,一次比较两个元素,如果它们的顺序不符合要求就交换它们的位置。N个数需要N 1趟排序,每一趟排序使得最大数冒出(升序)或最小数冒出(降序)。 实现 传统冒泡排序的C语言实现如下: 改进 设比较标志法 思想 普通的冒泡排序,即使原数列已经有序,仍然会进行N 1趟排序。可以加 阅读全文
posted @ 2016-01-02 16:33 gaunthan 阅读(154) 评论(0) 推荐(0)
摘要: 思想 对于 少量 元素的排序,插入排序是一个有效的算法。它的工作方式像排序一手扑克牌。开始时,我们左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入到左手中正确的位置上。拿在左手上的牌总是排好序的,原来这些牌是桌子上牌堆中顶部的牌。 实现 假设输入是 n 个数的一个序列a[0. 阅读全文
posted @ 2016-01-02 15:51 gaunthan 阅读(139) 评论(0) 推荐(0)