基本的なトレーニング01ソートする列数
問題の説明
長さnを考えると、列の数は、列のこの数が大きい順に配置されています。1 <= N <= 200
入力形式
最初の整数nを行います。
2行目は含まnは整数は、数が、10,000未満の整数の絶対値のそれぞれをソートします。
2行目は含まnは整数は、数が、10,000未満の整数の絶対値のそれぞれをソートします。
出力フォーマット
出力列の数の小さい順に出力行が、ソートされました。
サンプル入力
5
8 3 6 9 4
8 3 6 9 4
サンプル出力
3 4 6 8 9
#include <iostreamの> する#include <ベクトル> 使用して 名前空間STD; // クイック(大、小) ボイドクイックソート(intは左、int型の右、ベクトル< INT >&ARR) { IF(> =左、右) のリターン; INT I、J、基地; I =左、J = 右; 塩基 = ARR [左]; //は、参照の左端の数を取る 一方、(I < J) { 一方(ARR [J]> = ベース && I < J) J- ; 一方、(ARR [I] <= ベース && I < J) 私は ++ 。 もし(I < J) { int型の TEMP = [I] ARR。 ARR [I] = ARR [J]。 ARR [J] = TEMP。 } } // 基准数归位 ARR [左] = ARR [I]。 ARR [I] = 塩基; // 递归左边 クイック(左、I- 1 、ARR)。 // 递归右边 クイックソート(I + 1、右、ARR)。 } int型のmain(){ int型のn; cinを >> N; ベクター < 整数 > (N) // 数据读入 のための(INT iは= 0、I <N; ++ I){ CIN >> [I]。 } // 快排 クイック(0、N- 1 )。 // 数据输出 用(INT iは= 0、I <N; ++ I){ COUT << [I]。 もし(!I = N- 1 ){ COUT << " " 。 } } }
個人的な要約:
研究の質問がやってみたかったバブリングしながら、ソートアルゴリズムが、常に(彼はちょうど書き込みバブリングをします)バブルとそれを考えることができない、と時間の複雑さが高くなっています。行うには、高速行の問題は、emmm、右、他の人のデータO(∩_∩)O〜ハハ、データ構造の前にも教えフルバックをたくさん読んで。(>人<)
多くを学ぶために:
クイックソート:簡単に言えば、それは塩基として選択された数は、数字のセットに単純な並べ替えを行うことであるようにサブ(小)大塩基よりもベースの左右小型基地よりも(大)数に対する塩基の数は、使用ベース端再帰動作あたり2つの配列の規則のアイデアは、最終的に全体の配列順序を作ります。左から右から選択されたベースは、検索した場合、ベースは左から選択された場合は、右に検索する必要があることに注意してください。
ギャングスターは、高速行ボーエンを添付説明します。https://blog.csdn.net/qq_28584889/article/details/88136498