设为首页 加入收藏

TOP

函数定义(二)
2017-10-10 12:13:55 】 浏览:3658
Tags:函数 定义
p; while j >= 0 {

        

        if arr1[j] > key {

            arr1[j + 1] = arr1[j]

            arr1[j] = key

        }

        j -= 1

    }

}

print(arr1)

 

// 选择排序

var arr2:Array<Int> = [100, 304, 203, 90, 102]

for i in (0..<arr2.count - 1) {

    

    //    print(i)

    

    var index = i

    

    for j in (i..<arr2.count) {

        

        if arr2[index] > arr2[j] {

            

            index = j

        }

    }

    let tmp = arr2[i]

    arr2[i] = arr2[index]

    arr2[index] = tmp

    

}

print(arr2)

 

 

/*********** 两种快速排序: ***********/

 

// quick sort1

var array = [66,13,51,76,81,26,57,69,23]

func partition( list:inout [Int],left:Int,right:Int) -> Int{

    

    var pivot_index = left

    let piovt = list[left]

    

    for i in (left ... right) {

        

        print(i)

        

        if list[i] < piovt {

            

            pivot_index += 1

            

            if pivot_index != i {

                

                swap(&list[pivot_index], &list[i])

                

            }

        }

     }

    swap(&list[left], &list[pivot_index])

    return pivot_index

}

func quickSortArray( list:inout [Int],left:Int,right:Int) -> Void{

    

    if left < right {

        

        let pivot_index = partition(list: &list, left: left, right: right)

        

        quickSortArray(list: &list, left: left, right: pivot_index - 1)

        quickSortArray(list: &list, left: pivot_index + 1, right: right)

    }

}

quickSortArray(list: &array, left: 0, right: array.count - 1)

showArray(array: array)

 

// quick sort 2

func quicksort<T: Comparable>(_ a: [T]) -> [T] {

    guard a.count > 1 else { return a }

    let pivot = a[a.count/2]

    let less = a.filter { $0 < pivot }

    let equal = a.filter { $0 == pivot }

    let greater = a.filter { $0 > pivot }

    return quicksort(less) + equal + quicksort(greater)

}

 

let list1 = [ 10, 0, 3, 9, 2, 14, 8, 27, 1, 5, 8, -1, 26 ]

print(quicksort(list1))

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇函数类型 下一篇break-continue

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目