关于javascript:用javascript编写三大排序算法

7次阅读

共计 734 个字符,预计需要花费 2 分钟才能阅读完成。

一、冒泡排序

介绍:

顾名思义,冒泡排序由第一个元素与相邻元素比拟大小,如果后面的元素值大则替换地位,直到一波循环后最初一个元素最大。再从第二元素开始与相邻元素进行比拟,以此类推。

/**
 * 冒泡排序
 * @param {array} arr 
 */
function bubbleSort(arr) {for (let i = 0; i < arr.length; i++) {for (let index = 0; index < arr.length - i - 1; index++) {
      const nextIndex = index + 1;
      if (arr[index] > arr[nextIndex]) {
        // 两个比拟的元素调换地位
        arr[index] = arr.splice(nextIndex, 1, arr[index])[0];
      }
    }
  }
  return arr;
}

二、抉择排序

介绍:

[5, 3, 2, 6, 10, 9], 最外层一共比拟 5 次,因为最初剩下的一个元素必然在最初。

/**
 * 抉择排序
 * @param {array} arr 
 */
function selectSort(arr) {for (let i = 0; i < arr.length - 1; i++) {
    // 假如以后元素值最小
    let minIndex = i;
    let minVal = arr[minIndex];
    for (let index = i + 1; index < arr.length; index++) {const currentVal = arr[index];
      // 比拟元素值大小,定义最小元素的下标和值
      if (arr[index] < arr[minIndex]) {minIndex = index;}
    }
    // 替换以后轮训的下标与最小值下标的元素值
    arr[i] = arr.splice(minIndex, 1, arr[i])[0];
  }
  return arr;
}
正文完
 0