常见的三种排序方法:冒泡排序,快速排序,归并排序

冒泡排序

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素, 如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有元素再需要交换, 也就是说该数列已经排序完成。

冒泡排序演算法的运作如下:
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

快速排序

算法思想: 快速排序是选择出一个标准A,然后将小于A的值放在A之前,大于A的值放在A之后.

算法实现:
  1. 选择数组中第一个元素作为标准A,从后面开始比较
  2. 如果找到一个小于A的值B,就将B放在A的位置,然后从B之后开始找
  3. 如果找到一个大于A的值C,就将C放在最开始B的位置上,
  4. 依照上面的次序进行,直到从前面开始找的和从后面找的相遇,就将A放在相遇的位置.

归并排序

归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。

算法实现:
  1. 把长度为 n 的输入序列分成两个长度为 n/2 的子序列;
  2. 对这两个子序列分别采用归并排序;
  3. 将两个排序好的子序列合并成一个最终的排序序列。
语法: return[()[expression][]]; 可选项 expression 参数是要从函数返回的值。如果省略,则该函数不返回值。 用 return 语句来终止一个函数的执行,并返回 expression 的值。如果 expression 被省略, 或在函数内没有 return 语句被执行,则把值 undefined 赋给调用当前函数的表达式。