学習6週目
3408 ワード
객체지향의 함정
정렬
해시효율성과 성능
1.オブジェクト向けトラップオブジェクト向けプログラミングはC++から広く使われています.
オブジェクトには、関数に対応するメソッドとデータに対応するプロパティが含まれます.
オブジェクトに必要なデータと関数は、1つのデータ構造に集中します.
cタイプ鋳造と指向関数のポインタをサポートします.
property 1は、このサイズより小さいデータを格納する構成をオブジェクト構造体に割り当てている.
ポインタ参照によりproperty 2などのより多くのメモリ割り当てが必要な構成
方法を異なるデータ構造に分け,構造体が大きくなるのを防止する.
オブジェクトには、グローバルに既知の関数ではなく、使用するメソッドのポインタが必要です.
オブジェクト内のデータは、データを格納するデータ構造のようにコンパクトではありません.
パフォーマンスが重要な場合は、従来のアレイを推奨します.
2.並べ替え
データを並べ替えて保存することで、メモリへのアクセス数を減らし、検索を迅速に完了できます.
ソート・オブジェクトがポインタのサイズより大きい場合は、データを直接ソートするのではなく、データを指すポインタを並べ替えることでデータをソートし、フィルタ内でデータが移動しないようにします.
ソートは数字の大きさ区分であり,算術比較により決定できる.
これは.ポートはプログラミング言語に由来します.
IF(식) 분기1, 분기2, 분기3
IF文の計算後結果が0未満の場合は、第1四半期を実行します.
0に等しい場合は、第2四半期を実行します.
0より大きい場合は、第3四半期を実行します.
qsortライブラリ
UnixバージョンIIIから,高速ソートアルゴリズムを実装するqsortというライブラリ関数が導入された.
このqsort関数はデータのソート方法を知っているが,データの比較方法が分からないため,c言語の関数ポインタを用いて比較する.
Strcmp
Strcmpはqsortを考慮して作成される.
2つの文字列の前から順にアクセスし、1つの文字から別の文字を減算することで実現します.
マイナス結果が0の場合は、次の文字を返します.そうでない場合は、マイナス結果を返します.
この手順を繰り返し、文字列の最後に達すると0を返します.
Askyで表される文字列ソートアルゴリズムはよく機能しています.
他の言語(自然言語)をサポートするにつれて,数値的な比較順序のみを提供したり,言語のソート規則に従って変化したりする副作用が生じる.
3.亥時
これは前の方法よりも性能が良い方法です.
ハッシュ関数が計算しやすく、各キーが壁の唯一の位置にある場合、非常に迅速に検索できます.
ハッシュ関数の結果値を使用して、鍵に対応するデータをプライマリノードに格納できます.
ハッシュ関数は、メモリキーの範囲より小さい値を作成する必要があります.
データ値が大きすぎるか、多すぎると、データが分散し、メモリのアクセス性が低下する可能性があります.
ハッシュ関数の結果をインデックスを配列する方法として利用する.
各要素をbucketと呼びます.
計算を容易にしなければならない.
身長を均等に広げなければならない.
ハッシュ・テーブル・インデックスの最大値より大きい関数の解析
関数の合計をハッシュ・テーブル・サイズの残りの値で除算すると、この問題を簡単に解決できます.
海事tablesize 11の場合、すべてのスケール値を加算した値を均一に分布させるためには、ハッシュテーブルサイズを小数に設定することが望ましい.
hatableを利用して曲名を保存し、「Alligator」と「猩紅」は衝突状態にある.
李慶宇のhashカラー印刷で解決できます.
ハッシュ索引の管理
競合が発生した場合は、チェーンの前に要素を追加して挿入を速めることができます.
挿入にはもっと時間がかかりますが、検索するときにすべてのカラープリントをめくる必要はありません.
チェーン長を追跡する場合、チェーンが長くなるとハッシュ・テーブルを展開できます.この場合、拡張テーブルの収益はより大きいので、延長したほうがいいです.
ハッシュ競合の処理方法
ハッシュ・テーブルで空のスロットを検索するアルゴリズムを使用して、ハッシュ・チェーンを除去できます.
完全に消える
各キーを一意のbucketに接続します.
すべてのキーが分からない場合、完全なハッシュ関数を作成することはほとんど不可能です.
効率の低いアルゴリズムを迂回しても、より多くのプロセッサを使用すると、より良いパフォーマンスが得られます.
サディン
パフォーマンスと効率が分離されたデータベース.
データベースを各マシンで実行される複数のグリッドに分割する方法.
インタフェースを使用して、要求されたデータベース演算をすべてのグリッドに渡します.
コントローラは結果をまとめます.
このタスクは同時に並列に実行でき、パフォーマンスが向上します.
マップコピー
サディンの変種は,コントローラがコードを記述して中間結果を収集できるように根本的にした.
最も代表的なのは、電子自由財団が制定したDES(Data Encryption Standard)暗号解読プログラムだ.
Reference
この問題について(学習6週目), 我々は、より多くの情報をここで見つけました https://velog.io/@coco1606/스터디-6주차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol