![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
lvzhanbin
山重水复疑无路,柳暗花明又一村
展开
-
冒泡排序
先用一个简单的例子来说明一下冒泡排序的过程。 假如待排序的数组为|5|4|3|2|1|,我们需要按照从小到大的顺序将这个数组进行排序,那么使用冒泡排序的步骤如下所示: 第一轮: 原:|5|4|3|2|1| 1)|4|5|3|2|1| 5比4大,交换位置 2)|4|3|5|2|1| 5比3大,交换位置 3)|4|3|2|5|1| 5比2大,交换位置 4)|4|3|2|1|5| 5原创 2017-10-07 15:32:06 · 210 阅读 · 0 评论 -
插入排序
先用一个简单的例子来说明一下插入排序的方法。 假设要对数组|5|1|4|6|进行排序,插入排序的方法为,从第二个元素,即1开始到结尾,每一轮把当前考察的元素放置在它正确的位置上。这么说还是有点抽象,结合例子来理解。 第一轮: 这一轮所要做的事情是把第二个元素即1,放置在合适的位置上。 原:|5|1|4|6| 1)|1|5|4|6| 因为1比5小,所以和5交换了位置,此时前2个元素已经有序原创 2017-10-07 16:25:25 · 412 阅读 · 0 评论 -
选择排序
从今天开始把之前学习过的数据结构和算法复习一下,写下博客当做一种总结。先从最简单的O(n^2)排序算法写起,先讲一下选择排序。 选择排序的思想就是遍历整个数组,假设我们是要从小到大对数组进行排序。那么每次遍历都找到数组中的当前最小元素,然后放置在它的正确位置上。举个例子,假如我们要对[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]这个数组进行排序,第一次遍历时,从十个元素中找到最小的原创 2017-10-04 12:06:00 · 159 阅读 · 0 评论 -
归并排序
归并排序分为自顶向下(递归),和自底向上两种方法。在开始正文之前,先来简单说明一下递归归并排序的基本步骤。简单的说,归并排序只需要四个步骤: 1)以数组中间位置为标杆,将数组分成左右两个子数组。 2)对左子数组进行归并排序。 3)对右子数组进行归并排序。 4)对分别有序的左右子数组进行一次归并操作,归并成一个数组。下面用一个简单的例子来进行说明: 假设要对数组【 3, 1, 7, 5, 4原创 2017-10-24 17:01:06 · 254 阅读 · 0 评论 -
快速排序
一直都想写一篇关于快速排序的博客,但迟迟没有动笔,今天趁着这个机会,将我对于快速排序的认识进行一个总结,希望对阅读到这篇博客的你有所帮助。 说起快速排序,我头脑中的第一反应就是partition操作,因为partition操作是整个快速排序的核心所在。那到底什么是partition操作呢?先来看一张图: partition操作简单地说,就是找到一个元素作为标定点(如图中的5),经过操作后,使原创 2017-10-25 11:28:34 · 228 阅读 · 0 评论