//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
/// sum
func sum(array: Array<Int>) -> Int {
if array.count == 0 {
return 0;
}
var arrayM = array
let first = arrayM.removeFirst()
return first + sum(array: arrayM)
}
let total = sum(array: [2, 4, 6, 8])
/// count
func findTotalCount(array: Array<Int>) -> Int {
if array.count == 1 {
return 1;
}
var count: Int = 0
var arrayM = array
arrayM.removeFirst()
count += 1
return count + findTotalCount(array: arrayM)
}
let totalCount = findTotalCount(array: [2, 4, 6, 8])
/// maximum
func findMaximum(array: Array<Int>, max: Int) -> Int {
if array.count == 0 {
return max;
}
var arrayM = array
var m = max
let first = arrayM.removeFirst()
m = first > max ? first : max
return findMaximum(array: arrayM, max: m)
}
let max = findMaximum(array: [2, 4, 6, 8, 3], max: 0)
/// quick sort
func quickSort(array: Array<Int>) -> Array<Int> {
if array.count < 2 {
return array
}
let pivot = array[0]
var leftArray = Array<Int>()
var rightArray = Array<Int>()
for i in 1...array.count - 1 {
let item = array[i]
if item <= pivot {
leftArray.append(item)
} else {
rightArray.append(item)
}
}
var result = Array<Int>()
result.append(contentsOf: quickSort(array: leftArray))
result.append(pivot)
result.append(contentsOf: quickSort(array: rightArray))
return result
}
let qs = quickSort(array: [5, 2, 7, 10, 30, 200, 156])
/// quick sort in best-case
func quickSortInBestCase(array: Array<Int>) -> Array<Int> {
if array.count < 2 {
return array
}
let middleIndex = array.count / 2
let pivot = array[middleIndex]
var leftArray = Array<Int>()
var rightArray = Array<Int>()
for i in 0...array.count - 1 {
let item = array[i]
if item < pivot {
leftArray.append(item)
} else if item > pivot {
rightArray.append(item)
}
}
var result = Array<Int>()
result.append(contentsOf: quickSort(array: leftArray))
result.append(pivot)
result.append(contentsOf: quickSort(array: rightArray))
return result
}
let qsInBestCase = quickSortInBestCase(array: [5, 2, 7, 10, 30, 200, 156])
递归演示程序(swift)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 上俩个月一直在忙着毕业,没有更新简书,最近终于有时间搞点代码的事情写点代码总结了。由于种种原因吧,没有再去实...
- 最近学习RAC的了解到其核心思想FRP即函数响应式编程,来学习一下什么是函数式编程。 以前一直行令式编程,即一行一...
- 前言 受visualgo这个网站启发,于是想要实现一个iOS版的排序动画演示版,本篇主要介绍如何用swift3写一...
- 作者:uraimo,原文链接,原文日期:2016-05-05译者:aaaron7;校对:numbbbbb;定稿:s...