ホームページ >Java >&#&チュートリアル >Java でのクイックソート
次の記事「Java のクイック ソート」では、Java のクイック ソート アルゴリズムの概要を説明します。クイック ソート アルゴリズムは、マージ ソート アルゴリズムと似た効率的なソート アルゴリズムの 1 つです。これは、リアルタイムの並べ替え目的で広く使用されているアルゴリズムの 1 つです。このアルゴリズムの最悪の場合の時間計算量は O(n^2)、平均的な場合の時間計算量は O(n log n)、最良の場合の時間計算量は O(n log n) です。
O(n log n) の場合の空間計算量。n は入力のサイズです。ソートのプロセスには、入力の分割、再帰的反復、および再帰ごとに重要な要素のマーク付けが含まれます。このアルゴリズムの並べ替えの種類には、反復的な方法での隣接する要素の比較が含まれます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Quick Sort アルゴリズムは、効率的な方法で設計され実行される一連のステップを含む疑似コードを形成することで Java に実装できます。
QuickSort アルゴリズムは以下のように Java プログラミング言語を使用して実装されており、出力コードはコードの下に表示されます。
以下はコード実装です:
コード:
/* * Quick Sort algorithm - Divide & Conquer approach */ public class QuickSortAlgorithm { public static void main(String[] args) { int[] array = { 99, 31, 1, 3, 5, 561, 1, 342, 345, 454 }; quickSortAlgo(array, 0, array.length - 1); for (int ar : array) { System.out.print(ar + " "); } } public static int arrayPartition(int[] array, int start, int end) { int pivot = array[end]; int i = (start - 1); for (int ele = start; ele < end; ele++) { if (array[ele] <= pivot) { i++; int swap = array[i]; array[i] = array[ele]; array[ele] = swap; } } // Swapping the elements int swap = array[i + 1]; array[i + 1] = array[end]; array[end] = swap; return i + 1; } public static void quickSortAlgo(int[] arrayTobeSorted, int start, int end) { if (start < end) { int pivot = arrayPartition(arrayTobeSorted, start, end); quickSortAlgo(arrayTobeSorted, start, pivot - 1); quickSortAlgo(arrayTobeSorted, pivot + 1, end); } } }
出力:
クイック ソート アルゴリズムは効率的ですが、他のソート手法に比べてあまり安定していません。クイックソートアルゴリズムの効率は、繰り返される要素の数が多くなると低下するという欠点があります。空間の複雑さは、このクイック ソート アルゴリズムで最適化されます。
以上がJava でのクイックソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。