五种排序方法的Swift实现

Table of Contents

冒泡法(Bubble sort)

选择排序(Selection Sort)

归并排序(Merge Sort)

快速排序(Quick Sort)

基数排序(Radix Sort)/ 桶排序(Bucket Sort)

 

使用Xcode Version 10.2 (10E125)

 

冒泡法(Bubble sort

Runtime: O( N^2 ) average and worst case. Memory: O(1)

func bubbleSort<T: Comparable>(items: inout [T]) {
  for i in 0...items.count-2 {
    for j in 0...items.count-i-2 {
      if items[j] > items[j+1] {
        let tmp = items[j]
        items[j] = items[j+1]
        items[j+1] = tmp
      }
    }
  }
}

选择排序(Selection Sort

Runtime: O( n^2 ) average and worst case. Memory: O(1)

最直白的想法,找到最小的,换到最前面

func selectionSort<T: Comparable>(items: inout [T]) {
  for i in 0...items.count-2 {
    let rem = Array(items[i...items.count-1])
    let indexOfMinimum = indexOfMin(items: rem) + i
    if indexOfMinimum != i {
      let tmp = items[indexOfMinimum]
      items[indexOfMinimum] &#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值