一、OC,Swift 二分查詢法
做一個合格的程式設計師總是繞不過演算法這道坎,不管演算法在實際運用如何,但總是一個程式設計師進步的必經之路,根據 《演算法》逐一實現書中提到的演算法
簡單的二分查詢法:這裡使用到遞迴思想,嘗試解決模組更小的子問題
swift:
<code>
//二分查詢法
var array = [1,22,3,4,6,2]
func binarySearch(array:[Int],target:Int,start:Int,end:Int) ->Int {
if start > end {
return -1
}
let mid = start + (end - start)/2
if target > array[mid] {
return binarySearch(array, target: target, start:mid+1 , end: end)
}
else if target < array[mid] {
return binarySearch(array, target: target, start: start, end: mid-1)
}
else {
return mid
}
}
binarySearch(array, target: 3, start: 0, end: array.count-1)
</code>
輸出 2
OC:
<code>
- (NSUInteger)binarySearch:(NSArray *)array target:(NSNumber *)target start:(NSUInteger)start end:(NSUInteger)end {
if (start > end) {
return -1;
}
NSUInteger mid = start + (end - start) / 2;
if (target > array[mid]) {
return [self binarySearch:array target:target start:mid+1 end:end];
}else if (target < array[mid]) {
return [self binarySearch:array target:target start:start end:mid-1];
}else {
return mid;
}
}
</code>
相關文章
- 二分查詢 | 二分查詢的一種推薦寫法
- 聊一聊二分查詢法
- 二分查詢法
- 演算法(一):二分查詢法演算法
- 二分查詢(一)——純粹的二分查詢
- 二分查詢法小記
- 五、二分法查詢
- Golang實現二分查詢法Golang
- 查詢——二分查詢
- GO -冒泡 二分法查詢Go
- 二分查詢法(Binary_Search)
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- Python查詢-二分查詢Python
- 二分查詢
- 查詢演算法__二分查詢演算法
- 順序查詢和二分查詢
- 查詢演算法之二分法演算法
- 二分法查詢(遞迴實現)遞迴
- 死磕演算法之二分查詢法演算法
- java實現的二分法查詢Java
- 轉:C++實現的變種二分查詢法(折半查詢)--二叉查詢樹C++
- PHP二分查詢PHP
- 查詢演算法之二分查詢演算法
- 二分查詢法基本原理和實踐
- [資料結構] 二分查詢 (四種寫法)資料結構
- 【資料結構】折半查詢(二分查詢)資料結構
- 二分插入與二分查詢
- 演算法一 二分查詢( by Python)演算法Python
- 二分查詢(c++)C++
- BinarySearch(二分查詢)
- 詳解二分查詢
- 704.二分查詢
- 【總結】二分查詢 —— 一種減而治之的查詢方法(1)
- 二分查詢【折半查詢】演算法 PHP 版演算法PHP
- 每日一道演算法:二分查詢演算法
- 二分法查詢介紹及例項詳解
- leetcode -- 二分查詢LeetCode
- PHP 實現二分查詢PHP