2017年8月25日

排序算法之归并排序(Merge Sort)

摘要: 基本思想 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 代码实现 阅读全文

posted @ 2017-08-25 15:11 CodeBeauty 阅读(254) 评论(0) 推荐(0) 编辑

排序算法之选择排序

摘要: 基本思想 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 代码实现 算法改进:可以一次搜索中同时找出最大值与最小值,能够提高算法的效率 阅读全文

posted @ 2017-08-25 14:01 CodeBeauty 阅读(181) 评论(0) 推荐(0) 编辑

排序算法之希尔排序

摘要: 基本思想 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。 希尔排序时效分析很难 阅读全文

posted @ 2017-08-25 10:56 CodeBeauty 阅读(211) 评论(0) 推荐(0) 编辑

排序算法之插入排序

摘要: 基本思想 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,所以插入 阅读全文

posted @ 2017-08-25 10:56 CodeBeauty 阅读(169) 评论(0) 推荐(0) 编辑

排序算法之快速排序

摘要: 基本思想 快速排序是冒泡排序的一种改进,其基本思想是通过一趟排序将数据分割大于基准值和小于基准值两部分,按照该方法对两部分数据进行快速排序,整个排序过程可以使用递归或者循环来实现。快速排序是通常被认为在同数量级(O(nlog2n))的排序方法中平均性能最好的。但若初始序列按关键码有序或基本有序时,快 阅读全文

posted @ 2017-08-25 10:04 CodeBeauty 阅读(247) 评论(0) 推荐(0) 编辑

排序算法之冒泡排序(Bubble Sort)

摘要: 基本思想 假如按照从小到大的顺序排序,对待排序数组进行遍历,如果当前值大于其后一个值则进行交换,不断的进行遍历,直到没有交换动作的发生。冒泡排序的最好时间复杂度为O(n),最坏的时间复杂度为O(n²),所以冒泡排序的平均时间复杂度为O(n²),另外冒泡排序不会改变相同元素的前后顺序,故其是一种稳定的 阅读全文

posted @ 2017-08-25 10:03 CodeBeauty 阅读(386) 评论(0) 推荐(0) 编辑

导航