JS 冒泡排序
回温一下 JavaScript中的冒泡排序
原理:依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。
时间复杂度,空间复杂度,稳定性:
时间复杂度 指的是一个算法执行所耗费的时间
空间复杂度 指运行完一个程序所需内存的大小
稳定 指如果a=b,a在b的前面,排序后a仍然在b的前面,不稳定指,如果a=b,a在b的前面,排序后可能会交换位置
<script type="text/javascript"> var arr = [12, 34, 28, 28, 15, 13, 27, 46]; // reverse 倒序 noReverse 正序 console.log(BubbleSort(arr,'noReverse')) function BubbleSort(arr,order) { // i 是比较的次数 因为是两两相比 所以这里 i 从 1 开始到 length-1 for (let i = 1; i < arr.length; i++) { for(let j = 0; j < arr.length-i; j++) { if (order === 'reverse') { if (arr[j] > arr[j+1]) { var item = arr[j]; arr[j] = arr[j+1]; arr[j+1] = item; } }else if (order === 'noReverse') { if (arr[j] < arr[j+1]) { var item = arr[j]; arr[j] = arr[j+1]; arr[j+1] = item; } } } }; return arr }; </script>
现成的排序方法:sort()
使用方法:sort(function (a,b){return a-b}) 从小到大排
sort(function (a,b){return b-a}) 从大到小排
//升序
var arr = [4,3,6,5,7,2,1]; arr.sort(function(a,b){ return a-b }); console.log(arr);
//降序
var arr = [4,3,6,5,7,2,1]; arr.sort(function(a,b){ return b-a }); console.log(arr);
蜉蝣过山亦有风