Open Mardanjan opened 4 years ago
var arr = [5,55,21,1,2,3,4] function babelSort (arr) { for (var i = 0; i< arr.length - 1 ; i++) { for(var j =0 ; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j+1]) { arr[j] = [arr[j+1], arr[j+1] = arr[j]][0] } } } return arr } console.log(babelSort(arr))
function quickSort (arr) { if (arr.length <= 1) { return arr } let left = [], right = [] let baseVal = arr.pop() arr.map(item => { if (item > baseVal) { right.push(item) } else { left.push(item) } }) return quickSort(left).concat([baseVal], quickSort(right)) } console.log(quickSort(arr))
思路:从未排序数组中找到最大或最小的元素,放到数组的首位 接着再从未排序的数组中找出最大或最小的,放到排序数组的末尾 以此循环达到排序的目的
function selectionSort (arr) { for (var i = 0; i < arr.length ; i++) { minIndex = i for (var j = i+1; j < arr.length ; j++ ) { if (arr[j] < arr[minIndex]) { minIndex = j } } if (minIndex!= i) { arr[i] = [arr[minIndex], arr[minIndex] = arr[i]][0] } } return arr } console.log(selectionSort(arr))
普通冒泡排序
快速排序
选择排序
思路:从未排序数组中找到最大或最小的元素,放到数组的首位
接着再从未排序的数组中找出最大或最小的,放到排序数组的末尾
以此循环达到排序的目的