我想创建一个 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]))
但是代码排序不正确。我不知道我错过了还是加错了。
一种选择排序算法,可有效查找和交换元素,从而使数组从最高到最低排序。
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]