选择排序(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 } } }