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

  

  

原文地址:https://www.cnblogs.com/bobo1/p/12499745.html