冒泡排序
冒泡排序:顾名思义,向冒泡泡一样进行排序;就是进行诸位比较,大的在后。
需要使用循环的嵌套,采用多行多列,进行两两相比
简单冒泡的实现
for(var i=0;i<arr.length-1;i++){//大循环确定执行几轮
for(var j=0;j<arr.length-1;j++){//小循环确定每轮执行几列
if(arr[j] > arr[j+1]){
var ls=arr[j];//创建一个临时变量,保存其中大值
arr[j]=arr[j+1];//将小值强制赋值给大值
arr[j+1]=ls;//再将保存出来的大值重新赋值给原来的小值
}
}
}
简单冒泡完成
选择排序
选择排序:每次拿出一个数据和其他数据相比较;得到大的或小的值。与初始位置交换。
for(var i=0;i<arr.length-1;i++){
// 假设,将第一位保存出来,用来和后面所有作比较
// 假设,第一位是最小值
var iNow = arr[i];
// 立即将假设的最小值的位置,也存出来
var iNowIndex = i;
// 0-3
// 1-4
for(var j=i+1;j<arr.length;j++){
// 验证假设第一位是最小的正确性,不正确,就拿到比假设的值还小的值
if(iNow > arr[j]){
iNow = arr[j];
iNowIndex = j;
}
}
// 小循环执行结束后,iNow必然是最小值,此时此刻数组还没有发生变化
var ls = arr[i];
arr[i] = iNow;
// 上面是将最小值,放在第一位
// 第一位原本的数据,放在,原本最小值的位置,原本最小值得是哪呢?
arr[iNowIndex] = ls;
}
选择排序完成