优化前(传统): 优化: 在排序时,如果碰到了相同的元素比较多的时候也就是像{3,2,1,1,1,4,5,2,2,6,2,3}这种,我们判断的时候可以直接把这个元素放在与他相同的附近 ...
分类:
编程语言 时间:
2019-01-10 21:50:58
阅读次数:
288
在工作中遇到了排序问题,随后就总了了几种排序方式【冒泡排序、快速排序、选择排序】 【冒泡排序】 原理:比较相邻的两个元素,将值大的交换至右侧 【快速排序】 原理:1、选择数组的一个中间值,分成左右两个数组, 2、用中间值与数组的值进行比较,比中间值小的放到左数组,比中间值大的放到右数组 3、最后将左 ...
分类:
编程语言 时间:
2019-01-10 19:26:49
阅读次数:
207
题目链接:https://www.luogu.org/problemnew/show/P1177 题意:输入 $n$ 以及后续 $n$ 个整数,让你将这 $n$ 个整数从小到大排序输出。 归并排序(用时: 121ms / 内存: 1568KB): 快速排序(用时: 117ms / 内存: 1040K ...
分类:
编程语言 时间:
2019-01-08 00:17:19
阅读次数:
192
快速排序,又称划分交换排序,从无序队列中挑取一个元素,把无序队列分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序的最优时间复杂度为O(nlogn),递归的时间复杂度 ...
分类:
编程语言 时间:
2019-01-06 18:53:37
阅读次数:
175
排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中进行排序。 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序 ...
分类:
编程语言 时间:
2019-01-05 15:11:44
阅读次数:
206
1. 冒泡排序 2. 选择排序 3. 插入排序 4 希尔排序 5. 快速排序 6 归并排序 7. 二分查找 ...
分类:
编程语言 时间:
2019-01-04 21:29:51
阅读次数:
177
插入排序、选择排序、冒泡排序、希尔排序、堆排序、快速排序、归并排序、基数排序 ...
分类:
编程语言 时间:
2019-01-03 12:59:18
阅读次数:
180
快速排序是冒泡排序的改进版,主要思想:1.在待排序的元素内任取一个元素作为基准(通常选第一个元素,但最好的选择方法是从待排序元素中随机选取一个作为基准),称为基准元素;2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边;3.对左右两个分区重复以上步骤直到所有元素都是有序 ...
分类:
编程语言 时间:
2018-12-31 13:03:19
阅读次数:
167
快速排序 快速排序是一种基于分治的算法,其基本思想是将一个大数组按照一个【基准数】分为左右两份,左边的部分都不大于基准数,右边的部分都不小于基准数。然后,对这两份在分别应用快速排序,直到剩下一个元素为止。快速排序的平均时间复杂度为nlog(n)。 下面是选取数组最左边的元素为基准元素的快排算法: C ...
分类:
编程语言 时间:
2018-12-30 14:48:17
阅读次数:
237
排序 快速 https://segmentfault.com/a/1190000009426421 选择 https://segmentfault.com/a/1190000009366805 希尔 https://segmentfault.com/a/1190000009461832 冒泡堆栈,队 ...
分类:
编程语言 时间:
2018-12-26 17:51:38
阅读次数:
188