排序算法js实现

138 阅读1分钟
  1. 冒泡排序 冒泡排序 是最慢的排序算法之一 相邻两个数据之间进行比较,较大的向右移动,每次比较找出最大值,每比较一次,需要比较的数组长度减1
function bubbleSort(data) {
  let dataLenght = data.length;
  for (let i = 0; i < dataLenght - 1; i++) {
    //外层循环n-1次
    for (let j = 0; j < dataLenght - i - 1; j++) {
      //每循环一次,内层比较剩余需要比较数组长度减1次,找出一个最大值
      let temp = data[j];
      if (data[j] > data[j + 1]) {
        data[j] = data[j + 1];
        data[j + 1] = temp;
      }
    }
  }
  return data;
}
  1. 选择排序 从数组的开头开始,将第一个元素和其他元素比较,最小的元素会被放到第一个位置。再从第二个位置继续 从0位置开始,假设为小值位置,剩余元素和假设位置进行比较,如果较小,则将较小替换,内层循环每次找到最小值,然后再和假设位置进行交换
function selectionSort(data) {
  let min;
  for (i = 0; i < data.length - 1; i++) {
    min = i;
    for (let j = i + 1; j <= data.length - 1; j++) {
      if (data[j] < data[min]) {
        min = j;
      }
    }
    let temp = data[i];
    data[i] = data[min];
    data[min] = temp;
  }
  return data;
}