冒泡排序
- 前一个与后一个作比较,如果前一个大于后一个,两者交换位置
- 对每一对相邻元素做第一步的操作
- 针对所有的元素重复以上的步骤,除了最后一个
let arr = [1,3,4,5,8,6,4,1,3,2]
for(var i=0; i<arr.length - 1; i++) {
for(var j = i+1; j< arr.length; j++) {
if(arr[i]>arr[j]) {
var t = arr[i]
arr[i] = arr[j]
arr[j] = t
}
}
}
console.log(arr) [1, 1, 2, 3, 3, 4, 4, 5, 6, 8]
sort() 方法用于对数组的元素进行排序,并返回数组。
默认排序顺序是根据Unicode字符编码排的
let arr = [1,3,4,5,8,6,4,1,3,2]
arr.sort((a, b) => {
return a - b // a - b 升序, b - a 降序
})
console.log(arr) // [1, 1, 2, 3, 3, 4, 4, 5, 6, 8]
选择排序
let arr = [1,3,4,5,8,6,4,1,3,2]
for(let i = 0; i < arr.length - 1; i++) {
let min = i, t = null
for(let j = i+1; j< arr.length; j++) {
if(arr[j] < arr[min]) { // 这里用arr[min],是目前最小的值,如果比当前最小值还小,交换位置
min = j
}
}
t = arr[i]
arr[i] = arr[min]
arr[min] = t
}
console.log(arr) // [1, 1, 2, 3, 3, 4, 4, 5, 6, 8]