冒泡排序

什么是冒泡排序

冒泡排序是一种常见的排序算法,它的基本思想是通过比较相邻元素的大小,将较大的数向后移动,较小的数向前移动。在第一轮比较结束后,最大的数就会被移动到最后一个位置;接着进行第二轮比较,次大的数会被移动到倒数第二个位置,以此类推,直到所有元素都被排序。因为排序的过程中像气泡一样将大的元素逐渐浮动到数组的一端,所以称为冒泡排序。冒泡排序时间复杂度为O(n^2)

用Python实现

def bubble_sort(arr):
    n = len(arr)
    # 遍历所有数组元素
    for i in range(n):
        # 最后 i 个元素已经排好序,不需要再进行比较
        for j in range(0, n-i-1):
            # 如果当前元素比下一个元素大,则交换它们的位置
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

# 测试代码
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
    print("%d" % arr[i])

输出结果为:

排序后的数组:
11
12
22
25
34
64
90

 

用Golang实现

package main

import "fmt"

func bubbleSort(arr []int) {
    n := len(arr)
    // 遍历所有数组元素
    for i := 0; i < n; i++ {
        // 最后 i 个元素已经排好序,不需要再进行比较
        for j := 0; j < n-i-1; j++ {
            // 如果当前元素比下一个元素大,则交换它们的位置
            if arr[j] > arr[j+1] {
                arr[j], arr[j+1] = arr[j+1], arr[j]
            }
        }
    }
}

func main() {
    arr := []int{64, 34, 25, 12, 22, 11, 90}
    bubbleSort(arr)
    fmt.Println("排序后的数组:", arr)
}

输出结果为:

排序后的数组: [11 12 22 25 34 64 90]

 

用JS实现

function bubbleSort(arr) {
    const n = arr.length;
    // 遍历所有数组元素
    for (let i = 0; i < n; i++) {
        // 最后 i 个元素已经排好序,不需要再进行比较
        for (let j = 0; j < n-i-1; j++) {
            // 如果当前元素比下一个元素大,则交换它们的位置
            if (arr[j] > arr[j+1]) {
                [arr[j], arr[j+1]] = [arr[j+1], arr[j]];
            }
        }
    }
}

// 测试代码
const arr = [64, 34, 25, 12, 22, 11, 90];
bubbleSort(arr);
console.log("排序后的数组:", arr);

输出结果为:

排序后的数组: [11, 12, 22, 25, 34, 64, 90]

用TS实现

function bubbleSort(arr: number[]): void {
    const n = arr.length;
    // 遍历所有数组元素
    for (let i = 0; i < n; i++) {
        // 最后 i 个元素已经排好序,不需要再进行比较
        for (let j = 0; j < n-i-1; j++) {
            // 如果当前元素比下一个元素大,则交换它们的位置
            if (arr[j] > arr[j+1]) {
                [arr[j], arr[j+1]] = [arr[j+1], arr[j]];
            }
        }
    }
}

// 测试代码
const arr: number[] = [64, 34, 25, 12, 22, 11, 90];
bubbleSort(arr);
console.log("排序后的数组:", arr);

输出结果为:

排序后的数组: [11, 12, 22, 25, 34, 64, 90]

 

posted @ 2023-04-05 15:25  SuperCodeX  阅读(89)  评论(0编辑  收藏  举报