算法系列-快速排序

定义 快速排序是用来排列一连串数字的算法 原理 从数列中挑出一个元素,称为基准 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以放在任一边)。在这个分区退出之后,该基准就处于数列的中间位置。 阅读更多…

算法系列-归并排序

定义 归并排序是用来排列一连串数字的算法 原理 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指 阅读更多…

算法系列-堆排序

定义 堆排序指利用堆这种数据结构所设计的一种排序算法 大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列; 小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列; 原理 创建一个堆H[0,1,&#8 阅读更多…

算法系列-选择排序

定义 选择排序是用来排列一连串数字的算法 原理 第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置 再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾 重复第二步,直到全部待排序的数据元素的个数 阅读更多…

算法系列–冒泡排序

定义 冒泡排序是用来排列一连串数字的算法 原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最 阅读更多…