算法中交换两个数据
这两天搞服务器有点呆呆的。(⊙o⊙)(⊙o⊙)
在这里用冒泡排序demo 来说明。
第一种 最low的一种 借助中间变量 line 5 6 7
1 function bubble(arr) { 2 for (var i = 0, length = arr.length; i < length; i++) { 3 for (var j = 0; j < length -1 -i; j++) { 4 if (arr[j] > arr[j+1]) { 5 var temp = arr[j]; 6 arr[j] = arr[j+1]; 7 arr[j+1] = temp; 8 } 9 } 10 } 11 return arr; 12 }
第二种 不借助中间变量 line 5 6 7
1 function bubble(arr) { 2 for (var i = 0, length = arr.length; i < length; i++) { 3 for (var j = 0; j < length -1 -i; j++) { 4 if (arr[j] > arr[j+1]) { 5 arr[j] = arr[j] + arr[j+1]; 6 arr[j+1] = arr[j] - arr[j+1]; 7 arr[j] = arr[j] - arr[j+1]; 8 } 9 } 10 } 11 return arr; 12 }
第三种 借助数组 推荐 line 5
1 function bubble(arr) { 2 for (var i = 0, length = arr.length; i < length; i++) { 3 for (var j = 0; j < length -1 -i; j++) { 4 if (arr[j] > arr[j+1]) { 5 arr[j] = [arr[j+1], arr[j+1] = arr[j]][0]; 6 } 7 } 8 } 9 return arr; 10 }
知识要一点点积累总结,向大牛膜拜的同时,也要走路哦。掌握好基础,多思考,多总结。
亲爱的你 中秋快乐!