2つの一般的に使用されるアルゴリズムを合わせIOSの規則配列、所要時間計算量はO(N)であります

 

アイデア:従来の考え方に:合成配列である第1の配列は、あなたが正しいを見つけるまで、二番目の配列、1つの比較、の各要素を通過、それに挿入されます。

  シンプルなアイデア:セットC、B及び配列の比較の配列の先頭要素、最小値を見つけ、それが進行するために、配列Cに配置されます。

コードは以下の通りであります:

- (NSArrayの*)mergeOrderArrayWithFirstArray:(NSMutableArrayの*)secondArray配列1:(NSMutableArrayの* )array2の{
     // 全为空不处理
    場合(array1.count &&!array2.count){
         返します@ []。
    } 
    // 一个为空返回另外一个
    場合(!array1.count){
         戻り配列2。
    } 
    もし(!array2.count){
         戻りARRAY1。
    } 
    NSMutableArrayの * endArray = [NSMutableArrayのアレイ];
    一方、1 ){
         もし [(配列1 0】するIntegerValue] <[配列2 [ 0 ]するIntegerValue]){ 
            [endArrayのaddObject:配列1 [ 0 ]]。
            [removeObjectAtIndex配列1:0 ]。
        }   { 
            [endArrayのaddObject:配列2 [ 0 ]]。
            [removeObjectAtIndex配列2:0 ]。
        } 
        もし(!{array1.count)
            [endArray addObjectsFromArray:配列2]。
            破ります; 
        } 
        もし(!{array2.count)
            [endArray addObjectsFromArray:配列1]。
            破ります; 
        }
    }
    リターンendArray; 
}
 

 

おすすめ

転載: www.cnblogs.com/jgCho/p/11203508.html