小白前端一个,公司项目,里面有一个数组增加,删除,去重,排序,找到相同元素个数等等...
这是冒泡排序
var arr = [10, 20, 1, 2];
var t;
for(var i=0;i<arr.length;i++){
for(j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
console.log(arr); //[1, 2, 10, 20]
for循环运行的次序是,外层先走一步,然后内层走完,然后外层再走一步,内层再走一圈。
具体来说,
i=0: j依次遍历0,1,2,3,4,5,6,7,在交换
接下来i=1; j依次遍历1,2,3,4,5,6,7
结果是剩下数中最小的
然后i=2;j遍历2,3,4,5,6,7
i=3;j走过3,4,5,6,7
.
.
.
最后的结果就是数组被排序了。
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
var temp = arr[j+1];