文章目录
算法简介
冒泡排序
冒泡排序(有时称为下沉排序)是一种简单的排序算法,它反复遍历LIT以进行排序,如果排序顺序不对(升序或降序),则将它们组合起来,并交换它们。在不需要交换的情况下,对列表进行遍历直到不需要交换,这表明列表已被排序。
复杂度分析
Name | Best | Average | Worst | Memory | Stable Comments |
---|---|---|---|---|---|
Bubble sort | n | n² | n² | 1 | Yes |
JavaScript实现:
function bubbleSort(array) {
for (let i = 0; i < array.length; i++) {
for (let j = 1; j < array.length - i; j++) {
if (array[j - 1] > array[j]) {
[array[j - 1], array[j]] = [array[j], array[j - 1]];
}
}
}
return array
}
选择排序
选择排序是一种排序算法,具体而言是一种就地比较排序.T具有o(N2)时间复杂度,使得它在大列表上效率低下,通常比类似的插入排序性能差。SselectionSort因其简单性而闻名,它在某些情况下比复杂的算法具有性能优势,特别是在辅助内存有限的情况下。
复杂度分析
Name | Best | Average | Worst | Memory | Stable |
---|---|---|---|---|---|
Selection sort | n² | n² | n² | 1 | No |
JavaScript实现:
function selectSort(array) {
for (let i = 0; i < array.length; i++) {
let k = i
for (let j = i + 1; j < array.length; j++) {
if (array[j] < array[k]) {
k = j
}
}
[array[i], array[k]] = [array[k]