はじめに:
バケットソートは、最も簡単な最速のソート原理は、アレイのバケットの限られた数に割り当てられるです。各個別のバケット、その後、ソートされた(再使用または他のソートアルゴリズムを再帰的にソートソートバケツを継続して使用することが可能です)、
最後に、順序付けられたシーケンスを覚えておくことが、個々のバケットリストを記録するためです。
時間計算量:O (M + N- )。
宇宙複雑:O(N * K)
例えば :(例えばアハアルゴリズム)が誘導されます
最終試験の教師を終了するには、降順でそのスコアを学びます。唯一のクラス5 のクラスメート、この5 クラスメートが試験であった5 点、3 点、5 点、2 点、8 点、
(スコアは、10 点)。次のスコアを降順にソートし、順序がある85532 。あなたはコンピュータがランダムに読み取ることができるプログラム書き込みに何か良い方法はありますか5 その後、これらの番号を
5 ナンバーの出力を降順?
ソリューション:
画分11を表す一次元アレイを作成するために応じてサイズ分画、数値で表される数は、スコアに対応する配列で数を表します
次いで、バレル対応する番号が印刷されました。
コードは以下の通りであります:
INT のmain() { int型 A [ 11 ]、I、J、T; のための(I = 0 ;私は<= 10 ; I ++ )//ループ11 Aは、[I]は = 0 ; // 0に初期化する ための(I = 1 ; Iは<= 5 ; I ++)// ループ5は、キーボード5からの入力の数の数読み込み { scanfの(" %Dを")、&T; // 読み取り変数tのそれぞれの数 A [T] ++; // カウント } ため (I = 0 ;私は= < 10 ; Iは++)// 順次[0]〜[10判定する ] 11 回 用(J = 1 ; J <= A [I]は、Jが++)// 印刷するために数回が行われている のprintf(" %のD " ; // 5サイクル、I)は (のgetchar); GETCHARを(); / / ここでGETCHAR();プログラム出力の内容を表示するためにプログラムを一時停止する // また、システム(「休止」)を使用することができ;等の代わりに 戻り 0 ; }