集計アルゴリズムの秩序配列集計アルゴリズム実装
1433 ワード
集計アルゴリズムの秩序配列集計アルゴリズム実装
単純な秩序配列合成アルゴリズム:関数を書き、2つの秩序の整数配列を入力し、秩序のある整数配列を返します.実装はかなり簡単で、2つの長さの和の長さの配列を作成し、3つの配列をそれぞれ3つのポインタで指し、2つの配列の各要素が結合配列の位置を見つけて挿入し、ある配列のポインタが末尾に達するまで挿入します.もう1つの配列の残りのすべての要素を、配列の末尾に直接挿入します.アルゴリズムの簡単な実現は,パラメータの検証に注意し,配列が秩序化されているかどうかを判断する.
アルゴリズムの時間的複雑さは,マージされる2つの配列の長さに依存するので,O(M+N),空間的複雑さもO(M+N),すなわち必要な集計配列の長さはM+Nである.
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
単純な秩序配列合成アルゴリズム:関数を書き、2つの秩序の整数配列を入力し、秩序のある整数配列を返します.実装はかなり簡単で、2つの長さの和の長さの配列を作成し、3つの配列をそれぞれ3つのポインタで指し、2つの配列の各要素が結合配列の位置を見つけて挿入し、ある配列のポインタが末尾に達するまで挿入します.もう1つの配列の残りのすべての要素を、配列の末尾に直接挿入します.アルゴリズムの簡単な実現は,パラメータの検証に注意し,配列が秩序化されているかどうかを判断する.
public class MergeOrderedArray {
public static int[] merge(int [] a,int []b){
if(!isOrderedArray(a)){
System.out.println(" array a is not an ordered array.");
return null;
}
if(!isOrderedArray(b)){
System.out.println(" array b is not an ordered array.");
return null;
}
int a_len = a.length;
int b_len = b.length;
int[] merge = new int[a_len+b_len];
int i=0,j=0,k=0;
while(iarray[i+1]){
return false;
}
}
return true;
}
public static void main(String[] args) {
int a [] = {1,2,3,4,5};
int b [] = {2,3,4,5,6,7,8,9};
int [] merge = merge(a,b);
System.out.println(Arrays.toString(merge));
}
}
アルゴリズムの時間的複雑さは,マージされる2つの配列の長さに依存するので,O(M+N),空間的複雑さもO(M+N),すなわち必要な集計配列の長さはM+Nである.
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!