ブルーブリッジカップの練習(基礎)

基本的なトレーニング01ソートする列数

問題の説明
  長さnを考えると、列の数は、列のこの数が大きい順に配置されています。1 <= N <= 200
入力形式
  最初の整数nを行います。
  2行目は含まnは整数は、数が、10,000未満の整数の絶対値のそれぞれをソートします。
出力フォーマット
  出力列の数の小さい順に出力行が、ソートされました。
 
サンプル入力
5
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

 

おすすめ

転載: www.cnblogs.com/DullRabbit/p/12555900.html