1、冒泡排序

两次循环比较相邻元素,交换位置

 1 function popSort(arr) {
 2         for (let i = 0; i < arr.length; i++) {
 3             for (let j = i + 1; j < arr.length; j++) {
 4                 if (arr[i] > arr[j]) {
 5                     var temp = arr[i];
 6                     arr[i] = arr[j];
 7                     arr[j] = temp;
 8                 }
 9             }
10         }
11         return arr
12     }

2、选择排序

找到数组最小的元素,将它和数组第一个元素交换位置,接下来,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置,往复如此,直到将整个数组排序。基本点就是不断地选择剩余元素之中的最小者。

 1 function selectSort(arr) {
 2         for (let i = 0; i < arr.length; i++) {
 3             let min = arr[i];
 4             for (let j = i + 1; j < arr.length; j++) {
 5                 if (min > arr[j]) {
 6                     arr[i] = arr[j];
 7                     arr[j] = min;
 8                     min = arr[i];
 9                 }
10             }
11         }
12 
13  return arr
14     }

3、快速排序

  1. 从数组中选择一个元素作为基准点
  2. 排序数组,所有比基准值小的元素摆放在左边,而大于基准值的摆放在右边。每次分割结束以后基准值会插入到中间去。
  3. 最后利用递归,将摆放在左边的数组和右边的数组在进行一次上述的1和2操作
 1 function quickSort(arr) {
 2         if (arr.length <= 1) {
 3             return arr;
 4         }
 5         let num = arr[0], left = [], right = [];
 6         for (let i = 1; i < arr.length; i++) {
 7             if (arr[i] < num) {
 8                 left.push(arr[i]);
 9             } else {
10                 right.push(arr[i]);
11             }
12         }
13 
14         return quickSort(left).concat([num], quickSort(right));
15     }

4、插入排序

版权声明:本文为extroxe-1204原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/extroxe-1204/p/14926179.html