排序学习 - 为了面对算法面试(1)

2017-10-16  本文已影响0人  AnnieAri

前言

不懂就要问不会就要查!排序代码我选择用Swift演示(暂时觉得Swift真不适合写排序🤣)
放在前面的基础理论知识

先从简单的开始:

代码实现:
//选择排序:
func selectionSort(arr:inout [Int]) -> [Int]{
    for i in 0..<arr.count-1{
        for j in i+1..<arr.count{
            if arr[i] > arr[j] {
                let temp = arr[j]
                arr[j] = arr[i]
                arr[i] = temp
            }
        }
    }
    return arr
}
代码实现:
//冒泡排序
func bubbleSort(arr:inout [Int]) -> [Int]{
    for i in 0..<arr.count-1{
        for j in 0..<arr.count-1-i{
            if arr[j] > arr[j+1] {
                let temp = arr[j]
                arr[j] = arr[j+1]
                arr[j+1] = temp
            }
        }
    }
    return arr
}
//插入排序
func insertionSorting(arr:inout [Int]) -> [Int]{
    for i in 1..<arr.count {
        var j = i-1
        while(j >= 0){
            if arr[j] > arr[j+1] {
                let temp = arr[j]
                arr[j] = arr[j+1]
                arr[j+1] = temp
                
            }else{
                //如果 j 这个元素比 j+1的小 那么前面不用比了 都比 j+1的小
                break
            }
            j -= 1
        }
    }
    return arr
}

to be continue!

上一篇下一篇

猜你喜欢

热点阅读