冒泡排序
代码
var arr = [3,1,5,0];
for(var i=0; i<arr.length-1; i++)
{
for(var j = 0;j<arr.length-i;j++)
{
if(arr[j]>arr[j+1])
{
[arr[j],arr[j+1]] = [arr[j+1],arr[j]]
}
}
}
console.log(arr)
VM502:13 (4) [0, 1, 3, 5]
//升级版验证
var arr = [3,1,5,0,9,2,6,8,7];
for(var i=0; i<arr.length-1; i++)
{
for(var j = 0;j<arr.length-i;j++)
{
if(arr[j]>arr[j+1])
{
[arr[j],arr[j+1]] = [arr[j+1],arr[j]]
}
}
}
console.log(arr)
VM520:13 (9) [0, 1, 2, 3, 5, 6, 7, 8, 9]
选择排序
原理:遍历数组,设置最小值的索引为 0,如果取出的值比当前最小值小,就替换最小值索引,遍历完成后,将第一个元素和最小值索引上的值交换。如上操作后,第一个元素就是数组中的最小值,下次遍历就可以从索引 1 开始重复上述操作
代码
var array = [3,1,5,0,9,2,6,8,7];
for (var i = 0; i < array.length-1; i++) {// 轮数
// 该数后面 所有的数 该数【i+1】
for (var j = i+1; j < array.length; j++) {// 次数
// 比较
if(array[i]>array[j]){
// 互换
var temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
console.log(array)
(9) [0, 1, 2, 3, 5, 6, 7, 8, 9]