冒泡排序
定义一个随机数组
var arr1 = [5,4,8,3,2,6,7,1,10,9];
最外层循环---实现排序循环次数,循环次数不大于数组的数据单元个数,最后一次循环排序,会将最后两个数值的大小排序确定,不需要再次循环排序
for(var a = 0 ; a <= (arr1.length-1) - 1; a++){
// 内层循环,单元数据比较大小循环,每次循环出最大数值,不再进行比较循环
for( var b = 0; b <= (arr1.length-1) - 1 - a; b++){
// 判断相邻单元数据的大小
if (arr1[b] > arr1[b+1]){
// 交换数据位置,数据大的向后排序
var middle = 0;
middle = arr1[b];
arr1[b] = arr1[b + 1];
arr1[b + 1] = middle;
}
}
}
最后在控制台打印出这个数组----> 按照数据从小到大排序
console.log(arr1);
效果图
选择排序
定义一个随机数组
var arr2 = [5,4,8,3,2,6,7,1,10,9];
外层循环---实现排序循环次数,循环次数不大于数组的数据单元个数,最后一次循环排序,会将最后两个数值的大小排序确定,不需要再次循环排序
for(var a2 = 0 ; a2 <= (arr2.length-1) - 1; a2++){
// 定义一个起始位置数据(默认为最小值),存储起始位置数据的索引值
var min = a2;
// 内层循环,起始位置数据之前的数据,不参与下一次循环
for(var b2 = a2 + 1; b2 <= arr2.length-1 ; b2++){
// 判断如果有单元的数值,小于存储的索引值的数值,就存储这个数值的索引值
if(arr2[min] > arr2[b2]){
min = b2;
}
}
内层循环执行完毕,判断如果存储的索引值不是起始的索引值,就与存储当前较小值位置的索引值,交换其对应的数值
if(min != a2){
var middle = 0;
middle = arr2[a2];
arr2[a2] = arr2[min];
arr2[min] = middle;
}
}
最后在控制台打印出这个数组----> 按照数据从小到大排序
console.log(arr2);
效果图