この記事では、Division and Conquerメソッドに基づいてJavaによって実装された高速ソートアルゴリズムについて説明します。次のように、参照のために共有してください。
パッケージcn.nwsuaf.quick;/*** 20の数値をランダムに生成し、すぐに並べ替えて** @author liu yonglang**/public class Quick {/*** Arrayに2つの数字の交換操作を実装する* @param Array* Arrayが操作する* @param surciprciptの最初のサブスクリックswap(int [] array、int i、int j){int temp = array [i];配列[i] = array [j];配列[j] = temp; } / ***部門および征服部門アルゴリズム** @param array*操作* @param low* divisionのモジュールの開始アドレス* @param height* @param height* @return場所のモジュールのエンドアドレス* @return場所の参照要素のサブスクリプト* / public static int ict Quick(int [] array、int low、int height) //右から左にスキャンして、ピボットよりも小さい最初の要素を見つける(低<高さ){while(low <height && array [height]> = pivot)height-; //ピボットよりも小さい要素が見つかったことを示します(低<高さ)//スワップ後、低が+1操作スワップ(配列、低++、高さ)を実行します。 //左から右にスキャンして、ピボットよりも大きい最初の要素を見つける(low <height && array [low] <= pivot)low ++; //ピボットよりも大きい要素が見つかったことを示します(低<高さ)//スワップ後、-1操作スワップ(array、low、height--)を実行します。 } //参照要素の戻り高さの最終位置に戻ります。 } / ** * Quick Storg of Array * * @param Array *操作するアレイ * @param low * low * @param height * high * / public static void sort(int] array、int low、int height){//分割された参照要素に対応する位置を記録します。 //(low <height){//配列temp = quick(array、low、height)を分割する場合にのみ並べ替えます。 //左間隔のソート(配列、低、温度-1)について再帰的に並べ替えます。 //正しい間隔のソート(配列、温度 + 1、高さ)について再帰的に並べ替えます。 }} public static void main(string [] args){int [] array = new int [20]; system.out.println( "wulin.comテスト結果:"); System.out.print( "並べ替える前にシーケンス:"); for(int i = 0; i <array.length; i ++){// 0-99 array [i] =(int)(math.random() * 100)の20の整数をランダムに生成します。 System.out.print(array [i] + ""); } system.out.print( "/nsorted Sequence:"); sort(array、0、array.length -1); for(int i = 0; i <array.length; i ++)system.out.print(array [i]+""); }}実行結果:
PS:参照のためのデモンストレーションツールは次のとおりです。
オンラインアニメーションデモンストレーション挿入/選択/バブル/マージ/ヒル/クイックソートアルゴリズムプロセスツール:
http://tools.vevb.com/aideddesign/paixu_ys
Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaデータ構造とアルゴリズムのチュートリアル」、「Java操作DOMノードのヒントの要約」、「Javaファイルの要約およびディレクトリ操作のヒント」、「Java Cache操作のヒントの要約」というトピックを見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。