排序
Lin_Dong_Tian
不积跬步,无以至千里!
展开
-
经典排序算法(1)——冒泡排序算法详解
冒泡排序是一种交换排序。 什么是交换排序呢? 交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。 一、算法基本思想 (1)基本思想 冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。 算...原创 2019-10-07 10:27:49 · 1277 阅读 · 0 评论 -
经典排序算法(2)——插入排序算法/希尔排序详解
插入排序 直接插入排序是一种最简单的插入排序。 插入排序:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,直到全部插入完成。 这个过程类似摸牌: 先拿一张 5 在手里, 再摸到一张 4,比 5 小,插到 5 前面, 摸到一张 6,嗯,比 5 大,插到 5 后面, 摸到一张 8,比 6 大,插到 6 后面, .... ...转载 2019-10-07 10:59:31 · 284 阅读 · 0 评论 -
经典排序算法(3)——选择排序详解
选择排序(selection sort) 首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最小值。即一下两步: 1、找最小元素 2...原创 2019-10-07 15:43:18 · 120 阅读 · 0 评论 -
经典排序算法(4)——快速排序详解
算法思想 它的基本思想是: 1、通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大的数。 2、然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 上图中,演示了快速排序的处理过程: 初始状态为一组无序的数组:2、4、5、1、3。 经过以上操作步骤后,完成了第一次的排序,得到新的数组:...转载 2019-10-07 16:16:05 · 149 阅读 · 0 评论 -
经典排序算法(5)——归并详解
要点 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 算法思想 归并排序其实要做两件事: “分解”——将序列每次折半划分。 “合并”——将划分后的序列段两两合并后...原创 2019-10-07 17:16:13 · 225 阅读 · 1 评论