排序算法

优质
小牛编辑
117浏览
2023-12-01

冒泡排序

相邻的两个元素依次比较,小的放在左边。

选择排序

从未排序序列中找到最大(小)值存放到已排序序列末尾。

插入排序

从已排序序列中找到小于或等于当前数的位置并插到其后。

希尔排序

归并排序

归并排序(merge sort)是创建在归并操作上的一种有效的排序算法。归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。

递归方式

此方式不改变原数组。

function merge( left, right ) {  const arr = [];​  const ll = left.length;  const rl = right.length;​  let li = 0;  let ri = 0;​  while ( li < ll && ri < rl ) {    if ( left[li] <= right[ri] ) {      arr.push(left[li++]);    }    else {      arr.push(right[ri++]);    }  }​  while ( li < ll ) {    arr.push(left[li++]);  }​  while ( ri < rl ) {    arr.push(right[ri++]);  }​  return arr;}​function mergeSort( arr ) {  const len = arr.length;​  if ( len < 2 ) {    return arr;  }​  const mid = Math.floor(len / 2);​  return merge(mergeSort(arr.slice(0, mid)), mergeSort(arr.slice(mid)));}

快速排序