function fun2(Array, len){
let i = 0;
let temp = 0;
while (i<len){
temp++;
if (i==0||Array[i-1] < Array[i]){
i += temp;
temp = 0;
}else{
let tempdata = Array[i];
Array[i] = Array[i - 1];
Array[i - 1] = tempdata;
i--;
}
}
return Array
}
和传统想象中的循环不同,这个循环不仅可以自增循环,还可以自减循环。
当前值小于后值时,顺序往“后”执行,当前值大于后值时,依次往“前”交换位置,直到这个前值正好大于它所处位置的前一个值,小于它所处位置的后一个值。