ホームページ >Java >&#&チュートリアル >クイックソートの Java 実装 QuickSort の例

クイックソートの Java 実装 QuickSort の例

黄舟
黄舟オリジナル
2017-10-09 09:53:111936ブラウズ

以下のエディターは、Java クイックソート QuickSort (例) を提供します。編集者はこれがとても良いと思ったので、参考として共有します。編集者をフォローして一緒に見てみましょう

クイックソート

----------------------------- - --------------------------------------

感想

上に示すように: 各クイック ソートの開始時に、キー key=array[low] を設定し、次に高い位置から左に移動してキーより小さい値を見つけ、それを低い位置にコピーしてから、低から右にキーより大きい値を見つけて、それを高の位置にコピーし、低=高が終わるまで

キーを低の位置にコピーします。

上の図では、最初の除算の後、32 の位置が見つかり、32 の左辺と右辺が再帰的に並べ替えられます。

コード:


package Sort;
import java.util.Arrays;
public class QuickSort {

 public static void main(String[] args) {
  int array[]={32, 12, 7, 78, 23, 45};
  quickSort(array,0,array.length-1);
  System.out.println(Arrays.toString(array));
 }
 public static void quickSort(int array[],int left,int right)
 {
  if(left>=right)
  {
   return ;
  }
  int i=left;
  int j=right;
  int key=array[left];
  while(i<j)
  {
   while(i<j&&array[j]>key)
   {
    j--;
   }
   array[i]=array[j];
   //从后往前找到第一个比key小的数与array[i]交换;
   while(i<j&&array[i]<key)
   {
    i++;
   }
   array[j]=array[i];
   //从前往后找到第一个比key大的数与array[j]交换;
  }
  array[i]=key;
  //一趟快排之后已经将key的位置找到。
  quickSort(array,left,i-1);
  //对key左边的进行排序
  quickSort(array,i+1,right);
  //对key右边的进行排序
 }
}

以上がクイックソートの Java 実装 QuickSort の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。