JavaScript数组 - 选择排序
选择排序
选择排序相对于冒泡排序是比较好理解的排序方法
原理:通过比较首先选出最小的数放在第一个位置上,然后在其余的数中选择次小的数放在第二个位置,以此类推,直到排序完成。
同样还是用冒泡的那几个数9,8,7,6,5,4
我们通过选择排序来进行从小到大排序
先这种排序比较方法也叫做打擂台法
先看看第1个数9,往后所有的数进行比较,比较完成后就可以选出最小的数放在第0个位置;然后再进行第2个数进行比较,依次类推……
我们来一起看这种排序方法怎么写
上面这6个数,要比较多少次,打多少次擂台呢?
第一个数先来比较,把4放在第一个,9放在最后
再选出下一个数进行比较
选出一个数5,然后再继续选数比较
依次类推…
直到所有数改为升序排列,从小到大
一共要比较多少次呢?我们来用循环写一下
分析:
1.定义一个i让它小于数组的长度 – 1,因为最后一个数不用比较了
2.每一轮比较的时候应该从什么位置开始去比较呢?j = i + 1; j < arr.length
(当前数肯定不需要跟当前数去比较,所以是从当前数开始,到后面所有的数结束)
3.如果后面的数比前面的数小,就交换位置
arr[i] > arr[j]; tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp
var arr = [9,8,7,6,5,4];
for(var i = 0; i < arr.length - 1; i++){
for(var j = i + 1; j <arr.length; j++){
if(arr[i] > arr[j]){
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
alert(arr);
运行结果为
这就是选择排序,跟冒泡排序有所区别
赞 (0)