この記事では、Javaアレイに一般的に使用されるソートアルゴリズムについて説明します。次のように、参照のために共有してください。
1。バブルソートメソッド
SORTARRAY_01.java
public class sorteraray_01 {public static void main(string args []){int [] array = {14、5、86、4、12、3、21、13、11、2、55、66、22}; //初期化された1次元配列system.out.println( "unsorted array:")を作成します。 for(int i = 0; i <array.length; i ++){// array array system.out.print( " + array [i]); //出力配列要素のarray array system((i + 1)%5 == 0)// 5つの要素System.out.out.println();} int mid; Array.lents {array [i]){array [i] = array [i]; i = 0;実行結果:
アンソート配列:14 5 86 4 12 3 21 13 11 2 55 66 22バブルによってソートされたアレイ:2 3 4 5 11 12 13 14 21 22 22 55 66 86
2。アレイインクリメンタルソート
SORTARRAY_02.java
Import java.util.arrays; import java.util.random; public class sortarray_02 {public static void main(string [] args){random rd = new Random(); int [] array = new int [15]; // array system.out.printlnを宣言します( "ソートメソッドが使用される前の配列:"); for(int i = 0; i <array.length; i ++){//ランダム数を使用して、0〜20 array [i] = rd.nextint(20); //アレイ配列system.out.printに値を割り当てます( "" + array [i]); if((i + 1)%5 == 0)system.out.println(); } arrays.sort(array); //配列を並べ替える注文system.out.println( "/sort method:"); for(int i = 0; i <array.length; i ++){//配列配列system.out.print( " + array [i]); if((i + 1)%5 == 0)system.out.println();}}}}}にデータを出力します。実行結果:
ソートメソッドの前の配列:13 12 11 18 11 11 17 13 11 8 1 0 9 18 3ARRAYソートメソッドの使用後:0 1 3 8 9 11 11 11 11 11 12 13 13 13 17 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
3.クイックソートメソッド
SORTARRAY_03.JAVA
public class sorteraray_03 {public static void main(string args []){int [] intarray = {12、11、45、6、8、43、40、57、3、20、15、88、23}; system.out.println( "sortingの前に配列:"); for(int i = 0; i <intarray.length; i ++){system.out.print( " + intarray [i]); //出力アレイ要素if((i + 1)%5 == 0)// system.out.println();} system.out.println(); intart(intarray、intarray、0、cold 0、0、intarray、intarray、intarray、intarray、intarray、intarray、intarry、intarray、intarray、intarray、intarray、 system.out.println( "Quicksort:"); if((i + 1)%5 == 0)// 5つの要素System.out.println(); }} public static int getmiddle(int [] array、int left、int右){int temp; //クイックソートを実行して、中心点位置に戻りますint mid = array [左]; //中心を[0]に配置します(左<右){while(左<右&& array [右]> = mid)右 - ; temp = array [右]; //中心点よりも小さいデータを左配列[右] =配列[左];配列[左] = temp; while(左<右&& array [左] <= mid)左++; temp = array [右]; //中心ポイントよりも大きいデータを右の配列[右] =配列[左];配列[左] = temp; } array [左] = mid; //中央を正しい位置に移動します左に戻ります。 //中心点に戻る} public static int [] Quicksort(int [] array、int left、int右){//クイックソートメソッド(左<右-1){//開始点とノードが重複しない場合、つまり、ポインターが最後まで実行されていない場合、int mid = getMiddle(read、右)。 //ミドルポイントクイックソートを取得します(配列、左、MID -1); QuickSort(配列、Mid + 1、右); } return array; }}実行結果:
ソート前の配列:12 11 45 6 8 43 40 57 3 20 15 88 23 QuickSelectメソッドを使用した後:3 6 8 11 12 20 15 23 40 43 45 88 57
4.選択方法を選択します
SORTARRAY_04.java
public class sorteraray_04 {public static void main(string args []){int [] array = {14、5、86、4、12、3、51、13、11、2、32、6、45、34}; //初期化された1次元配列アレイint keyvalueを作成します。 //最小の要素値indインデックスを示します。 //最小の要素値int tempを示します。 //中間変数system.out.println( "unsorted array:"); for(int i = 0; i <array.length; i ++){//配列配列system.out.print( ""+array [i]); //出力配列要素if((i + 1)%5 == 0)// 5つの要素System.out.println(); } for(int i = 0; i <array.length; i ++){//選択のコアインデックスを使用していますソートメソッド= i; keyvalue = array [i]; for(int j = i; j <array.length; j ++)if(array [j] <keyvalue){index = j; keyvalue = array [j]; } temp = array [i]; array [i] = array [index];配列[index] = temp; } system.out.println( "/sortingを選択した後に配列を使用します:"); for(int i = 0; i <array.length; i ++){//ソートされた配列system.out.print( ""+array [i]); //出力配列要素if((i + 1)%5 == 0)system.out.println(); // 5つの要素ごとに1つの行}}}実行結果:
アンソートアレイ:14 5 86 4 12 3 51 13 11 2 32 6 45 34アレイ選択法を使用した後:2 3 4 5 6 11 12 13 14 32 34 45 51 86
PS:参照のためのデモンストレーションツールは次のとおりです。
オンラインアニメーションデモンストレーション挿入/選択/バブル/マージ/ヒル/クイックソートアルゴリズムプロセスツール:
http://tools.vevb.com/aideddesign/paixu_ys
Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaデータ構造とアルゴリズムのチュートリアル」、「Java操作DOMノードのヒントの要約」、「Javaファイルの要約およびディレクトリ操作のヒント」、「Java Cache操作のヒントの要約」というトピックを見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。