木8:データストリームの中央値を取得する方法は?数値が奇数データストリームから読み込まれた場合、中央値は、ソート後のすべての値の中央に位置しています。偶数値は、データストリームから読み出された場合、中央値は、注文の全ての中間値の後に2つの数の平均値です。私たちは、読み込まれ、現在の中央値のデータを取得するためにGetMedian()メソッドを使用して、データ・ストリームを読み取るために挿入()メソッドを使用します。

方法1:使用するダイナミックアレイが行います。

レビューArrayListに、LINKLIST配列の違い:

アレイ:静的配列

動的配列に基づいて、https://www.cnblogs.com/battlecry/p/9374497.htmlを参照してください。ArrayListを

LINKLIST:動的なリストを参照してくださいhttps://blog.csdn.net/qedgbmwyz/article/details/80108618

LinkedListのは、ポインタを移動するためのArrayListは、LINKLIST、より適切なクエリや読み取りを比較しました。データの多くは、ArrayListのを移動するためLINKLISTの削除は、より適切な操作のArrayListを比較しました。

 

考える:この質問は、より適切なArrayListに、データ・ストリームおよびクエリの操作を読むことです。

一般的な方法のArrayList

array.add(オブジェクト); //要素を追加
(インデックス)array.get; // getメソッド、書き込みインデックスのパラメータに、セット内の要素を削除します。
()Array.size; //は、即ち記憶素子の数、セットの長さを返します。
array.remove(); //要素を削除します
 

コード:

輸入 java.utilの。* ;
パブリック クラスソリューション{ 
    一覧 <ダブル>リスト= 新しいのArrayList <ダブル> ();
    公共 のボイド挿入(整数NUM){ 
        list.add(は、Double.valueOf(NUM)); // 返回给定参数NUM的原生ダブル对象值 
        Collections.sort(リスト); // のArrayList的排序
    } 

    公共ダブルGetMedian(){
         ダブル RES = 0 INT LEN = はlist.size()。
        もし(LEN == 1)RES = list.get(0 )。
        そう であれば(LEN%2 == 0 ){
            int型 TMP = LEN / 2 ; 
            RES =(list.get(TMP)+ list.get(TMP-1))/ 2.0 
        } {
             int型 TMP = LEN / 2 
            RES = list.get(TMP)。
        } 
        戻りRES。
    } 
}

 

方法2:杭低いかさ大トップのトップへ

おすすめ

転載: www.cnblogs.com/xuechengmeigui/p/12664144.html