快速排序-Swift 实现

如题,上代码:

func quick_sort(arr: inout [Int]) {
           if arr.count == 0 {
               print("Data error")
           }

       _q_sort(arr: &arr, start: 0, end: arr.count - 1)
   }

   func _q_sort(arr: inout [Int], start: Int, end: Int) {

       if start >= end {
           return
       }


       var i = start
       var j = end
       let keyValue = arr[i]

       if i < j {
           while i < j &&  keyValue <= arr[j] {
               j -= 1
           }

           if i < j {
               swap(arr: &arr, i: i, j: j)
           }

           while i < j && keyValue >= arr[i] {
               i += 1
           }

           if i < j {
               swap(arr: &arr, i: i, j: j)
           }
       }

       _q_sort(arr: &arr, start: start, end: j - 1)
       _q_sort(arr: &arr, start: i + 1, end: end)
   }

   func swap(arr: inout [Int], i: Int, j:Int) {
       let temp = arr[i]
       arr[i] = arr[j]
       arr[j] = temp
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值