国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

二分法查找有序數組元素

2019-11-09 16:46:17
字體:
來源:轉載
供稿:網友

在一個有序數組中,如果我們想要找到指定的元素是否存在。我們怎么去查找呢?如果是非計算機專業人員可能會寫一個for循環,挨個進行比較。可是這樣進行比較的話是最笨的辦法。我們寫了這么多年程序了,不能這樣做對不對?這樣怎么能夠體現出我們的水平呢? 我們可以使用二分法,這樣可以加快尋找的效率。現在我講講二分法的思路: 它是通過與數組的中間值進行比較的,步驟如下: **注釋: 下邊的解釋假設: 1.我們要查找的值為X 2.數組是從小到大排序的 ** 1.先取出數組中間的元素 2.把中間元素和X進行比較,如果中間元素大于X,那么X就位于第一個元素,和中間元素之間。反之,如果中間元素小于X,那么X就位于中間元素和最大值之間。 3.這樣進行比較之后,我們的查找范圍就小了一半。 下邊我獻上代碼: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.

NSArray *arr = @[@1,@20,@30,@45,@50,@55,@60,@66,@70];NSInteger x = 70,min,max,mid;min = 0;max = arr.count - 1;mid = (min + max) / 2;for (int i = 0; i < arr.count; i++){ if ([arr[mid] integerValue] == x) { NSLog(@"查找次數為%d次",i); NSLog(@"尋找值位置為%ld",mid); return; }else if ([arr[mid] integerValue] > x) { max = mid - 1; mid = (min + max) / 2; }else if ([arr[mid] integerValue] < x) { min = mid + 1; mid = (min + max) / 2; }}

}


上一篇:效果動畫

下一篇:View的事件分發機制

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 渑池县| 北碚区| 屯留县| 怀宁县| 乃东县| 探索| 肥乡县| 葫芦岛市| 新平| 蒙城县| 萨迦县| 个旧市| 石河子市| 玉田县| 嘉祥县| 新闻| 绥棱县| 苏尼特左旗| 台南县| 云南省| 荆州市| 上饶市| 龙南县| 丰台区| 永福县| 伊通| 天柱县| 泗阳县| 临澧县| 略阳县| 正蓝旗| 德庆县| 金川县| 麦盖提县| 仙居县| 颍上县| 宝兴县| 九江县| 郁南县| 乐都县| 安吉县|