十大排序之冒泡排序、选择排序
function bubbleSort(arr){
if(!arr.length) return arr
for(let i = 0 ;i< arr.length ; i++){
// -i 是因为之前的i次循环已经排好了末尾的i个元素,-1是判断索引
for(let j = 0 ; j < arr.length - i -1; j++){
if(arr[j] > arr[j+1]){
let tem = arr[j]
arr[j] = arr[j+1]
arr[j+1] = tem
}
}
}
return arr
}
// 以升序排序为例
function choiceSort(arr){
if(!arr.length) return arr
for(let i = 0 ; i< arr.length ; i++){
let index = i // 标记最小元素的索引位置
// 找到剩下元素中的最小元素索引位置
for(let j = i+1 ; j< arr.length ; j++){
if(arr[j] < arr[index]){
index = j
}
}
let tem = arr[i]
arr[i] = arr[j]
arr[j] = tem
}
return arr
}