[02]のJavaベースとアレイをソートします
リンク:[01] Javaプログラム、式、文と演算子の基本構造 - > https://www.cnblogs.com/discoverspace/p/11509577.html
1.コンセプト配列1765243235
アレイ内の識別子と添字を示す添字1.1アレイは、異なる要素を区別することができます。配列が一つだけのインデックスである場合は、1次元配列と呼ばれます。二次元配列と比較される2つの添え字があります。一般に一次元および二次元アレイは、より一般的に使用される3次元配列を使用します。
アレイはメモリアレイ要素に、参照型であり、配列変数が別々に格納されており、参照変数がメモリスタック(スタック)に格納され、配列の要素は、ヒープ(ヒープ)中にあります。
配列のための基本的なデータ構造で順次格納する同じタイプの値のセットを。
配列を作成し、初期化する1.2
名前と型配列の宣言を、アレイを作成し、配列要素を初期化します。少し完全な言葉遣い。
文言を簡素化:
1 INT [] =新しいINT [100]。
1.3アレイの別名
配列名は配列全体を表す変数が他の変数の配列を与えられた場合、2つの変数が同じ配列を指します。
1 INT [] =新しいINT [100]。 2 [1] = 102。 [] B 3 INT =。 4 B [1] = 2;
このときの値は、[1]また、2となります。
2.配列をソートします
2.1バブルソート:データセットのレコードのセットがn個を含有する、最悪の場合は、N-1の順序でなければなりません。
すべてのソートが固定最後に出すだろう、もはや最も多く、次の並べ替えに参加しません固定の数。
インポートjava.util.Scanner 1; 2パブリッククラスバブルソート{ 3パブリック静的ボイドバブルソート(INT []データ、INT LEN)。 4 { 5用(INT I = 0; I <-len 1; I ++は) 。6 { 7偽のフラグ=ブール; 。8(INT J = 0; J <len- 1-I; J ++) 。9 { (DATA [J] 10 IF> [Jの+ 1]のデータ) 11 { 12がint TEMPある= DATA [J] ; 図13は、DATA [J]である= DATA [J + 1]; 14 DATA [J + 1] = TEMP; 15 =フラグに真の 16} 17} //交換が発生していない、注文した(!フラグに)IF 18は、 19ブレーク; 20} 21} 22パブリック静的無効メイン(文字列[] args){ 23スキャナCIN =新しいスキャナ(System.in)。 24一方(cin.hasNext()){ 25 INT N = cin.nextInt()。 26 INT [] =新しいINT [N]。 27(I = 0 int型、iがN <; Iは++){ 28 [I] = cin.nextInt()。 29} 30バブルソート(N) 31は(INT I:A){//ため、各循环 32のSystem.out.println(I)。 33} 34} 35} 36}
2.2 クイックソート(重要!):二項の思考は、データセット内のカットオフ値として(たとえば最初など)のデータを取り、すべての少数取得する権利上の左の大きなカットオフスコアにカットオフスコア二つの配列、2つの配列は、約わずか数まで、ソートされています。
完全なコード:
java.util.Scannerインポート; publicクラスのクイックソート{ 公共の静的な無効クイックソート(int型、int型エンドを起動し、[]のデータをint型) { 私は=起動しますint型; J = int型エンド; IF(I> = J)//終了条件 返す; trueにフラグにブール=; trueに//検索がfalseに左から右へ、右から左に示した検索を示し //ストップながら出会った、交換が完了したことを意味まで(I = J!) { (データ[I]のIF >データ[J]) { int型のTEMP =データ[I]、 DATA [I] = DATA [J]、 DATA [J] = TEMP; フラグにフラグに= ;! //次IJを決定する切替フラグで変更されます変更の変更者を(方向はどこへ行くの検索) } IF(旗) J - ; } 他 私は++; I - ; J ++; //再帰、S分割、それぞれ左IJ及び右側がもう一度繰り返し クイックソート(データ、スタート、I)、 クイック(データ、J、エンド); } 公共の静的な無効メイン(文字列[]引数){ スキャナスキャナ新しい新しいCIN =(System.in); 一方(cin.hasNext()){ int型のn-cin.nextInt =(); [N-] INT A [] =新しい新しいINT; (I 0 = int型のために、 I <N - 、I ++){ [I]は= cin.nextInt(); } クイックソート(A、0 ,. 1-N-); (I int型のために:A){//毎LOOP- するSystem.out.printlnを( I); } } } }
リンク:[01] Javaプログラム、式、文と演算子の基本構造 - > https://www.cnblogs.com/discoverspace/p/11509577.html
1.コンセプト配列1765243235
アレイ内の識別子と添字を示す添字1.1アレイは、異なる要素を区別することができます。配列が一つだけのインデックスである場合は、1次元配列と呼ばれます。二次元配列と比較される2つの添え字があります。一般に一次元および二次元アレイは、より一般的に使用される3次元配列を使用します。
アレイはメモリアレイ要素に、参照型であり、配列変数が別々に格納されており、参照変数がメモリスタック(スタック)に格納され、配列の要素は、ヒープ(ヒープ)中にあります。
配列のための基本的なデータ構造で順次格納する同じタイプの値のセットを。
配列を作成し、初期化する1.2
名前と型配列の宣言を、アレイを作成し、配列要素を初期化します。少し完全な言葉遣い。
文言を簡素化:
1 INT [] =新しいINT [100]。
1.3アレイの別名
配列名は配列全体を表す変数が他の変数の配列を与えられた場合、2つの変数が同じ配列を指します。
1 INT [] =新しいINT [100]。 2 [1] = 102。 [] B 3 INT =。 4 B [1] = 2;
このときの値は、[1]また、2となります。
2.配列をソートします
2.1バブルソート:データセットのレコードのセットがn個を含有する、最悪の場合は、N-1の順序でなければなりません。
すべてのソートが固定最後に出すだろう、もはや最も多く、次の並べ替えに参加しません固定の数。
インポートjava.util.Scanner 1; 2パブリッククラスバブルソート{ 3パブリック静的ボイドバブルソート(INT []データ、INT LEN)。 4 { 5用(INT I = 0; I <-len 1; I ++は) 。6 { 7偽のフラグ=ブール; 。8(INT J = 0; J <len- 1-I; J ++) 。9 { (DATA [J] 10 IF> [Jの+ 1]のデータ) 11 { 12がint TEMPある= DATA [J] ; 図13は、DATA [J]である= DATA [J + 1]; 14 DATA [J + 1] = TEMP; 15 =フラグに真の 16} 17} //交換が発生していない、注文した(!フラグに)IF 18は、 19ブレーク; 20} 21} 22のpublic static無効メイン(文字列[] args){ 23スキャナCIN =新しいスキャナ(System.in)。 24一方(cin.hasNext()){ 25 INT N = cin.nextInt()。 26 INT [] =新しいINT [N]。 27(I = 0 int型、iがN <; Iは++){ 28 [I] = cin.nextInt()。 29} 30バブルソート(N) 31は(INT I:A){//ため、各循环 32のSystem.out.println(I)。 33} 34} 35} 36}
2.2 クイックソート(重要!):二項の思考は、データセット内のカットオフ値として(たとえば最初など)のデータを取り、すべての少数取得する権利上の左の大きなカットオフスコアにカットオフスコア二つの配列、2つの配列は、約わずか数まで、ソートされています。
完全なコード:
java.util.Scannerインポート; publicクラスのクイックソート{ 公共の静的な無効クイックソート(int型、int型エンドを起動し、[]のデータをint型) { 私は=起動しますint型; J = int型エンド; IF(I> = J)//終了条件 返す; trueにフラグにブール=; trueに//検索がfalseに左から右へ、右から左に示した検索を示し //ストップながら出会った、交換が完了したことを意味まで(I = J!) { (データ[I]のIF >データ[J]) { int型のTEMP =データ[I]、 DATA [I] = DATA [J]、 DATA [J] = TEMP; フラグにフラグに= ;! //次IJを決定する切替フラグで変更されます変更の変更者を(方向はどこへ行くの検索) } IF(旗) J - ; 他 私は++; } I - ; J ++; //再帰、S分割、それぞれ左IJ及び右側がもう一度繰り返し クイックソート(データ、スタート、I)、 クイック(データ、J、エンド); } 公共の静的な無効メイン(文字列[]引数){ スキャナスキャナ新しい新しいCIN =(System.in); 一方(cin.hasNext()){ int型のn-cin.nextInt =(); [N-] INT A [] =新しい新しいINT; (I 0 = int型のために、 I <N - 、I ++){ [I]は= cin.nextInt(); } クイックソート(A、0 ,. 1-N-); (I int型のために:A){//毎LOOP- するSystem.out.printlnを( I); } } } }