选择排序JavaScript

本文详细介绍了JavaScript中的选择排序算法,通过compare函数进行数值比较,exchange函数用于交换数组中指定位置的元素。通过两层循环,每次找出未排序部分的最大值并将其放置在正确的位置,最后对给定数组[6,1,2,3,4,5]进行了排序并输出结果。

function compare(a, b) {
  return a > b ? true : false;
}

function exchange(arr, a, b) {
  let temp = arr[a];
  arr[a] = arr[b];
  arr[b] = temp;
}

//選擇排序,在每一輪比較的時候選出最大的值,一輪比較完成后再進行交換
function selectionSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    let maxIndex = arr.length - 1 - i;
    for (let j = 0; j < arr.length - 1 - i; j++) {
      if (compare(arr[j], arr[maxIndex])) {
        maxIndex = j;
      }
    }
    if (maxIndex !== arr.length - 1 - i) {
      exchange(arr, maxIndex, arr.length - 1 - i);
    }
  }
}
let arr = [6, 1, 2, 3, 4, 5];
selectionSort(arr);
console.log(arr);


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值