iOS常用算法之兩個(gè)有序數(shù)組合并(要求時(shí)間復(fù)雜度為0(n))
思路:
常規(guī)思路:
先將一個(gè)數(shù)組作為合并后的數(shù)組, 然后遍歷第二個(gè)數(shù)組的每項(xiàng)元素, 一一對(duì)比, 直到找到合適的, 就插入進(jìn)去;
簡(jiǎn)單思路: 設(shè)置數(shù)組C, 對(duì)比A和B數(shù)組的首項(xiàng)元素, 找到最小的, 就放入數(shù)組C,依次進(jìn)行下去.
代碼如下:
- (NSArray *)mergeOrderArrayWithFirstArray: (NSMutableArray *)array1 secondArray: (NSMutableArray *)array2 {
// 全為空不處理
if (!array1.count && !array2.count) {
return @[];
}
// 一個(gè)為空返回另外一個(gè)
if (!array1.count) {
return array2;
}
if (!array2.count) {
return array1;
}
NSMutableArray *endArray = [NSMutableArray array];
while (1) {
if ([array1[0] integerValue] < [array2[0] integerValue]) {
[endArray addObject:array1[0]];
[array1 removeObjectAtIndex:0];
}else {
[endArray addObject:array2[0]];
[array2 removeObjectAtIndex:0];
}
if (!array1.count) {
[endArray addObjectsFromArray:array2];
break;
}
if (!array2.count) {
[endArray addObjectsFromArray:array1];
break;
}
}
return endArray;
}
執(zhí)行代碼, 輸入輸出結(jié)果如下:

總結(jié)
以上所述是小編給大家介紹的iOS常用算法之兩個(gè)有序數(shù)組合并(要求時(shí)間復(fù)雜度為0(n)),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
分享一個(gè)關(guān)于Storyboard 跳轉(zhuǎn)與傳值
近日不忙,給大家分享一個(gè)關(guān)于storyboard跳轉(zhuǎn)傳值的相關(guān)知識(shí),感興趣的朋友一起看看吧2015-12-12
解決iOS UITextField 編輯時(shí)文本偏移問題
這篇文章主要介紹了解決iOS UITextField 編輯時(shí)文本偏移問題,需要的朋友可以參考下2017-05-05
IOS倒計(jì)時(shí)設(shè)置UIButton標(biāo)題title的抖動(dòng)問題
這篇文章主要介紹了IOS倒計(jì)時(shí)設(shè)置UIButton標(biāo)題title的抖動(dòng)問題,在發(fā)送驗(yàn)證碼后,button狀態(tài)需要變?yōu)閐isable,每隔一秒顯示倒計(jì)時(shí)時(shí)間,下面通過本文給大家介紹設(shè)置方法,一起看看吧2016-12-12

