摘要:
1. 基本思想 归并排序(MERGE-SORT) 是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略。 "归并"思想 基于归并这个简单的操作,也就是说如果想要将一个数组排序,可以先(递归地) 将它分成两半分别排序,然后将结果归并起来,即将两个有序的数组 阅读全文
摘要:
参考和引用了 白话经典算法系列之六——快速排序 的一些内容 1. 基本思想 概述 快速排序(Quicksort) 是一种分治的排序算法,它将一个数组分成两个子数组,将两部分独立地排序;排序的方式是当两个子数组都有序时整个数组也就自然有序了。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的 阅读全文
摘要:
1. 引入 插入排序存在的问题: 现在有这么一个数组,arr={2,3,4,5,6,1};现在需要插入的数 1 (最小),过程是: {2,3,4,5,6,6} → {2,3,4,5,5,6} → {2,3,4,4,5,6} → {2,3,3,4,5,6} → {2,2,3,4,5,6} → {1,2 阅读全文
摘要:
1. 基本思想 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 把 n 个待排序的元素看成为一个〈有序表〉和一个〈无序表〉,开始时有序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表 阅读全文
摘要:
1. 举例说明 n 个数据,总共进行 n-1 次大的循环,得到一个按从小到大排列的有序序列: 第 1 次从 arr[0]~arr[n-1] 中选取最小值,与 arr[0] 交换 第 2 次从 arr[1]~arr[n-1] 中选取最小值,与 arr[1] 交换 第 3 次从 arr[2]~arr[n 阅读全文
摘要:
1. 基本思想 从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒 每循环遍历一次,就能把这一轮见过的元素中 maxValue 放在末尾位置 // 和选择排序正好相反,选择是一轮过后,就确定一个 minVal 待排 阅读全文