> 文档中心 > 【算法】JavaScript冒泡排序

【算法】JavaScript冒泡排序


数字类型:

 //冒泡排序    const arr = [2, 4, 5, 6, 1, 3]    //外层循环长度减一次    for (let i = 0; i <= arr.length - 1; i++) {      //内层循环 最大次数等于外层循环数组长度-1      for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 //j + 1 如果是最大的j,那么到最大的j+1肯定也是最大,所以这个+1也是最大的, //因为他们都加一,并不影响结果,但如果加2或者更多,那么有可能其中至少两个就会变换位置 //如果需要从大到小排列,将if里边改为arr[j]  arr[j + 1]) {   let temp = arr[j]   arr[j] = arr[j + 1]   arr[j + 1] = temp }      }    } console.log(arr);

运行结果:

字符串类型:

//冒泡排序    const arr = ['qwe', 'qwer', 'qwert', 'qwerty', 'qw', 'q']    //外层循环长度减一次    for (let i = 0; i <= arr.length - 1; i++) {      //内层循环 最大次数等于外层循环数组长度-1      for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 //j + 1 如果是最大的j,那么到最大的j+1肯定也是最大,所以这个+1也是最大的, //因为他们都加一,并不影响结果,但如果加2或者更多,那么有可能其中至少两个就会变换位置 //如果需要从大到小排列,将if里边改为arr[j]  arr[j + 1]) {   let temp = arr[j]   arr[j] = arr[j + 1]   arr[j + 1] = temp }      }    } console.log(arr);

运行结果:

 混合(字符串+数字)

//冒泡排序    const arr = ['qwe', 'qwer', 'qwert', 3, 1, 2]    //外层循环长度减一次    for (let i = 0; i <= arr.length - 1; i++) {      //内层循环 最大次数等于外层循环数组长度-1      for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 //j + 1 如果是最大的j,那么到最大的j+1肯定也是最大,所以这个+1也是最大的, //因为他们都加一,并不影响结果,但如果加2或者更多,那么有可能其中至少两个就会变换位置  //如果需要从大到小排列,将if里边改为arr[j]  arr[j + 1]) {   let temp = arr[j]   arr[j] = arr[j + 1]   arr[j + 1] = temp }      }    } console.log(arr);

运行结果: