排序算法 1、基本介绍 ? 排序算法比较基础,但是设计到很多计算机科学的想法,如下: ? 1、比较和非比较的策略 ? 2、迭代和递归的实现 ? 3、分而治之思想 ? 4、最佳、最差、平均情况时间复杂度分析 ? 5、随机算法 2、排序算法的分类 算法分类 冒泡排序 (1)冒泡排序的介绍 ? 冒泡排序是 ...
分类:
编程语言 时间:
2019-12-09 01:23:47
阅读次数:
75
实现原理 数组中有 n 个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置;这样一来,第一轮就可以选出一个最大的数放在最后面;那么经过 n-1(数组的 length - 1) 轮,就完成了所有数的排序。 好的,我们先来实现找数组中的最大数,并把他放到数组最后。 var arr = [3,4 ...
分类:
编程语言 时间:
2019-12-08 17:13:03
阅读次数:
77
鸡尾酒排序其实就是冒泡排序的变形,它的时间复杂度和冒泡排序一样,都是O(n^2),比快速排序要慢不少。 鸡尾酒排序算法 鸡尾酒排序的思想有点像摆钟一样,从左到右,又从右到左。而冒泡排序只是单向执行。 鸡尾酒排序也是交换排序,假设做一个升序排序,先从左到右,交换一趟把最大的数放置右边,然后从右到左,把 ...
分类:
编程语言 时间:
2019-12-08 01:00:40
阅读次数:
76
冒泡排序(Bubble Sort) 一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越 ...
分类:
编程语言 时间:
2019-12-07 23:31:40
阅读次数:
95
快速排序属性 上一篇文章介绍了冒泡排序和它的优化。这次介绍的快速排序是冒泡排序演变而来的算法,比冒泡排序要高效的很多。 快速排序之所以快,是因为它使用了分治法。它虽然也是通过不断的比较和移动来实现排序的,只不过它的实现,增大了比较的距离和移动的距离。而冒泡排序只是相邻的比较和交换。 快速排序的思想是 ...
分类:
编程语言 时间:
2019-12-07 19:20:53
阅读次数:
87
C++sort()函数的用法 (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高! (二)c+ ...
分类:
编程语言 时间:
2019-12-07 12:29:38
阅读次数:
95
1.平常会遇到这样的事情,完成同一个功能可以使用不同的方式,比如排序,可以使用冒泡排序也可以使用快速排序。策略模式就是符合这样的情况,当完成一件事有多种实现方式,可以根据环境或者其他条件去选择不同的方式去实现。避免了硬编码的方式,扩展和变更更加方便。避免了代码的重复,算的使用和算法的实现分离开。 2 ...
分类:
其他好文 时间:
2019-12-06 13:19:48
阅读次数:
104
package com.rao.sort;import java.util.Arrays;/** * @author Srao * @className BubbleSort * @date 2019/12/4 12:33 * @package com.rao.sort * @Description ...
分类:
编程语言 时间:
2019-12-04 13:29:06
阅读次数:
100
冒泡排序 var arr = [1, 9, 4, 50, 49, 6, 3, 2]; function test(){ for (var i = 0; i < arr.length - 1; i++){ for (var j = i + 1; j < arr.length; j++){ var te ...
分类:
编程语言 时间:
2019-12-04 13:06:56
阅读次数:
79