手动对 JavaScript 数组进行排序

问题描述 投票:0回答:1

我想创建一个 JavaScript 函数,在不使用传统的 .sort() 方法的情况下对数字从最大到最小进行排序

const sortArray= (array)=>{
    let newArray = []
    let firstArray = array[0]
    for(const num in array){
        if(num>firstArray){
         firstArray = num
         newArray.push(firstArray)
        }else{
         firstArray = firstArray
         newArray.push(firstArray)
        }
    }
   return newArray
}
console.log(sortArray([0,10,-1,4,7]))

但是代码排序不正确。我不知道我错过了还是加错了。

javascript arrays sorting
1个回答
0
投票

一种选择排序算法,可有效查找和交换元素,从而使数组从最高到最低排序。

const sortArray = (array) => {
  let newArray = [];

  for (let i = 0; i < array.length; i++) {
    let maxIndex = i;

    // Find the index of the maximum element within the remaining unsorted part
    for (let j = i + 1; j < array.length; j++) {
      if (array[j] > array[maxIndex]) {
        maxIndex = j;
      }
    }

    // Swap the current element with the maximum element
    [array[i], array[maxIndex]] = [array[maxIndex], array[i]];
  }
  return array;
};

console.log(sortArray([0, 10, -1, 4, 7])); // Output: [10, 7, 4, 0, -1]

© www.soinside.com 2019 - 2024. All rights reserved.