选择排序(JS代码)
首先n=1,数组长度length
1.先用第n个元素和数组所有元素进行比较,找到数组中最小的那个元素
2.将它和数组的第n个元素交换位置
3.然后n++,重复1,2操作,直到n=length结束
// 选择排序
Array.prototype.selectSort = function () {
let len = this.length
for (let j=0; j<len; j++) {
for (let i=j+1; i<len; i++) {
// 这里进行比较把最小的元素放在前面
if (this[j] > this[i]) {
let keynum = this[i]
this[i] = this[j]
this[j] = keynum
}
}
}
}
let arr = [2,9,5,7,1,1,6,3,3,4]
console.log("原来:", arr.toString())
// 原来: 2,9,5,7,1,1,6,3,3,4
arr.selectSort()
console.log("排序后:", arr.toString())
// 排序后: 1,1,2,3,3,4,5,6,7,9
优化一下
Array.prototype.selectSort2 = function () {
let len = this.length
for (let j=0; j<len; j++) {
let min = j
for (let i=j+1; i<len; i++) {
// 这里记录最小的元素的下标
if (this[min] > this[i]) {
min = i;
}
}
if (min !== j) { //把最小的元素换到前面
let keynum = this[min]
this[min] = this[j]
this[j] = keynum
}
}
}

浙公网安备 33010602011771号