×

快速排序 排序

快速排序方法有哪些?什么是冒泡排序算法

admin admin 发表于2022-05-15 22:59:17 浏览124 评论0

抢沙发发表评论

快速排序方法有哪些


快排的思想是(假设都是从小到大排列):
选一个值作为“轴值”,所有小于轴值的都移动到轴值左边,所有大于轴值的都移动到轴值右边。这一步是让数列变得较为有序
然后分别再对轴值的左边、右边分别进行快排,一步一步提高整个数列的有序程度,直到最后完全有序。

轴值的选取有多种方式,这里就假设是选正中间的一个
70,75,82,90,23,16,10,68
选择轴值 90,排列后得到:
70,75,82,23,16,10,68,(90)
括号括起来的我表示是轴值,这里运气不好,轴值选中了一个最大的

下面对轴值左边排序,在选择轴值为23:
16,10,(23),70,75,82,68

再分别对16, 10 和 70,75,82,68进行排序

一般快排在待排序的数字个数较少时,会选取其它排序来进行排列,比如插入排序。这里16,10数字个数已经太少,用插入排序排成10, 16

然后对 70,75,82,68进行排序……

整个排序过程就这样

什么是冒泡排序算法


冒泡排序算法:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

扩展资料:

冒泡排序算法的原理如下:

1,比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3,针对所有的元素重复以上的步骤,除了最后一个。

4,持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

参考资料:百度百科---冒泡排序


JavaScript数字数组怎么按数字大小排序


  1. 先写上我们的示例代码,定义了一个数组arr,数组包括有几个字母,不按顺序的,要对数组进行排序,直接调用sort方法。再加上一些输出语句,console.log是指在浏览器的调试控制台里输出内容。

  2. 运行页面,我们在控制台里看下结果,如图,数组调用sort方法后,就按字母的升序做好排序了。

  3. 修改下代码,把数组内容从字符串改成数字,然后再调用sort方法。

  4. 修改后,运行页面,再看下结果。

  5. 数组排序都是按字符串来排序的,而不管数组内容是数字还是字符串。

  6. 修改下sort排序方法,把刚才定义的方法名传进来。

  7. 运行页面,可以看到现在的数组就是按数字从小到大排序的。

好,Javascript中的数字数组排序非常简单,JS本身提供了内置的排序方法,直接调用就可以了。

1.var arr = [1, 20, 49, 32, 43, 69];

2.arr.sort();

3.console.log(arr); // [1, 20, 32, 43, 49, 69]