插入排序和冒泡排序(Swift版本)

Posted KbDaVinci

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序和冒泡排序(Swift版本)相关的知识,希望对你有一定的参考价值。

插入排序(只记录代码不作详细分析)

插入排序将输入的元素一个个插入到已排序的队列里,对比是由后往前

代码:

func insertSort<Elem: Comparable>(_ arr: inout [Elem]) {
    for i in 1...arr.count-1 {
        let tmp = arr[i]
       
        for j in (0...i-1).reversed() {
            if (j > 0 && arr[j] > tmp) {
                arr[j + 1] = arr[j]
            } else {
                arr[j + 1] = tmp
                break
            }
        }
    }
}

 

冒泡排序:

func bubbleSort<Elem: Comparable>(_ arr: inout [Elem]) {
    func swap(_ a: inout Elem, _ b: inout Elem) {
        let tmp = a
        a = b
        b = tmp
    }
   
    for i in (1...arr.count-1).reversed() {
        for j in 0...i-1 {
            if arr[j] > arr[j+1] {
                swap(&arr[j], &arr[j+1])
            }
        }
    }
}

以上是关于插入排序和冒泡排序(Swift版本)的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

Python的冒泡排序和插入排序算法

拓扑排序(图)、冒泡排序、插入排序

为啥插入排序比快速排序和冒泡排序更快?

六大排序算法:插入排序希尔排序选择排序冒泡排序堆排序快速排序