数组排序

21
五月
2021

给出正整数数组 array = [2,1,5,3,8,4,9,5]
请写出一个函数 sort,使得 sort(array) 得到从小到大排好序的数组 [1,2,3,4,5,5,8,9]
新的数组可以是在 array 自身上改的,也可以是完全新开辟的内存。

不得使用 JS 内置的 sort API

let minIndex = (numbers) => {
    let index = 0;
    for (let i = 0; i < numbers.length; i++) {
        if (numbers[i] < numbers[index]) {
            index = i;
        } else {
        }
    }  return index
};
let swap = (array, i, j) => {   // 最小  第一位换位置
    let temp = array[i];
    array[i] = array[j];
    array[j] = temp;
};
function sort(array) {
    for (let i = 0; i < array.length - 1; i++) {
        let index = (minIndex(array.slice(i) ))+ i;
        if (index !== i) {
            swap(array, index, i);
        }
    }
    return array;
}
let array = [2, 1, 5, 3, 8, 4, 9, 5];
console.log(sort(array))
TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员