JavaScript 实现选择排序,冒泡排序算法

基本算法二

选择排序

  1. 分出有序区R[1,2,…i]和无序区R[i+1,i+2…n]
  2. 每一趟排序都要从无序区选出一个最小值放在有序区,使无序区减一有序区加一
  3. 重复1-2步骤n-1次
let testArr = [1, 67, 3, 6, 9, 45, 78,22,111,56];
  function selectionSort( array ){
    let len = array.length, temp;
    if (len <= 1){
      return array;
    }else{
      for (let i = 0; i < len - 1; i++){
        let min = array[i];
        for (let j = i + 1; j < len; j++){
          if (array[j] < min){
            temp = min;
            min = array[j];
            array[j] = temp;
          }
        }
        array[i] = min;
      }
      return array;
    }
  }
  let resArr = selectionSort(testArr);
  console.log(resArr);

结果: [1, 3, 6, 9, 22, 45, 56, 67, 78, 111]

冒泡排序

  1. 比较相邻元素,判断大小是否进行交换位置
  2. 对每一对相邻元素做同样的工作,从开始到结束
  3. 对所有元素进行1-2步骤重复操作
  4. 重复步骤1-3,直到排序完成
let testArr = [1, 67, 3, 6, 9, 45, 78,22,111,56];

  function bubbleSort( array ){
    let len = array.length, temp;
    if (len <= 1){
      return array;
    }else{
      for (let i = 0; i < len - 1; i++){    //从零开始遍历,限制第一层循环的次数
        for (let j = len - 1; j >= i; j--){     //从len-1位开始向前两两比较判断是否交换位置
          if (array[j] < array[j - 1]){
            temp = array[j-1];
            array[j - 1] = array[j];
            array[j] = temp;
          }
        }
      }
      return array;
    }
  }

  let resArr = bubbleSort(testArr);
  console.log(resArr);

结果: [1, 3, 6, 9, 22, 45, 56, 67, 78, 111]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值