数组排序算法

选择排序

每次从待排序序列中找出最小(或最大)的元素,与当前位置的元素交换,依次将最小值放到已排序序列的末尾,直到全部有序。选择排序是不稳定排序。

function selectionSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[i]) {
        arr[j] = arr[j] + arr[i];
        arr[i] = arr[j] - arr[i];
        arr[j] = arr[j] - arr[i];
      }
    }
  }
  return arr;
}

冒泡排序

重复遍历数组,依次比较相邻两个元素,顺序错误则交换位置,直到没有相邻元素需要交换为止。

function bubbleSort(arr) {
    for (let i = 0; i < arr.length; i++) {
        for (let j = 0; j < arr.length - i; j++) {
            if (arr[j] > arr[j + 1]) {
                arr[j] = arr[j] + arr[j + 1];
                arr[j + 1] = arr[j] - arr[j + 1];
                arr[j] = arr[j] - arr[j + 1];
            }
        }
    }
    return arr;
}