HOME AUTHORS

常用的排序算法整理

2022年3月21日 22:54
ali
Tags 复杂度 排序 方式

冒泡排序

实现方式

JS方式

// 冒泡排序
function bubbleSort(arr) {
    const len = arr.length
    for (let i = 0; i < len - 1; ++i) {
        for (let j = 0; j < len - 1 - i; ++j) {
            if (arr[j] > arr[j + 1]) {
                const temp = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = temp
            }
        }
    }
    return arr
}

console.log(bubbleSort([2, 3, 1, 6, 5]))//ouput:[1,2,3,5,6]

python方式

# 冒泡排序
def bubbelSort(arr):
    for i in range(0, len(arr) - 1):
        for j in range(0, len(arr) - 1 - i):
            if arr[j] > arr[j + 1]:
                temp = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = temp

    return arr


print(bubbelSort([2, 3, 1, 6, 5]))  # ouput:[1,2,3,5,6]

选择排序

O(1)

实现方式

Js方式

// 快速排序
function selectionSort(arr) {
    const len = arr.length
    let minIndex, temp
    for (let i = 0; i < len - 1; ++i) {
        minIndex = i
        for (let j = i + 1; j < len; ++j) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j
            }
        }
        temp = arr[minIndex]
        arr[minIndex] = arr[i]
        arr[i] = temp
    }
    return arr
}

console.log(selectionSort([2, 3, 1, 6, 5]))//ouput:[1,2,3,5,6]

pthon方式

def selectionSort(arr):
    for i in range(0, len(arr) - 1):
        minIndex = i
        for j in range(i + 1, len(arr)):
            if (arr[j] < arr[minIndex]):
                minIndex = j
        temp = arr[minIndex]
        arr[minIndex] = arr[i]
        arr[i] = temp
    return arr


print(selectionSort([2, 3, 1, 6, 5]))  # ouput:[1,2,3,5,6]

插入排序

实现方式

js方式

待更新