一.利用for循环做数据插入数组合适位置(使用冒泡排序)
1.概念:在数组中插入一个数据单元可使用冒泡排序,冒泡排序原理即为利用相邻的索引下标依次比较后由从小到大/大到小进行数值比较并在合适位置插入该数据,多次比较后得到排序好的数组 ;
例子:
var arr = [10, 20, 30, 40, 50];
var n = 11;
arr.push(n);
for(var k =0; k<arr.length-1;k++){
for(var i=0;i<arr.length-1-k;i++){
if(arr[i]>arr[i+1]){
var temp =arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
console.log('冒泡排序结束后的arr: ', arr)
A: 基础版操作:
for (var k = 0; k < arr.length; k++) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
B:优化版操作1:
for (var k = 0; k < arr.length; k++) {
for (var i = 0; i < arr.length-1; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
内层for循环使得,arr.length-1,让内层循环少循环一步;
C:优化版操作2:
for (var k = 0; k < arr.length-1; k++) {
for (var i = 0; i < arr.length-1; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
外层for循环使得,arr.length-1,让外层循环少循环一步;
D:最终版优化操作:
for(var k=0;k<arr.length-1){
for(var i=0;i<arr.length-1-k;i++){
if(arr[i]>arr[i+1]){
var temp =arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
console.log('冒泡排序结束后的arr: ', arr)
在内层循环中使arr.length-1-k,可少进行K轮比较;