package com.suifeng.sort;
public class quicksort ;
system.out.println("**********===排序前**********===");
//顯示排序後的陣列
for (int i = 0; i < nums.length; ++i)
system.out.println();
//應用快速排序方法
sort(nums, 0, nums.length - 1);
system.out.println("**********===排序前**********===");
//顯示排序後的陣列
for (int i = 0; i < nums.length; ++i)
system.out.println(""); }
public static void sort(int arr, int low, int high)
// 預設從後往前數
boolean flag = true;
while(low < high)
if(flag)
else
}high++;
low--;
sort(arr,lo,low);
sort(arr,high,hi);
}}
執行結果:
**********===排序前**********===
49,38,65,97,76,13,27,
**********===排序後**********===
13,27,38,49,65,76,97,
演算法的解釋來自於原始碼部分也參考裡邊例項**的是是實現
排序演算法 快速排序的Java實現
所謂快速排序 基於分治的思想,是氣泡排序的改進型。首先在陣列中選擇乙個基準點並把基準點放於序列的開頭 該基準點的選取可能影響快速排序的效率,關於基準點的選擇方法後面再講解 然後分別從陣列的兩端掃瞄陣列,設兩個指示標誌 lo指向起始位置,hi指向末尾 首先從後半部分開始,如果發現有元素比該基準點的值小...
排序演算法 快速排序 java實現
它採用了一種分治的策略,通常稱為分治法。分治法思想 將原問題分解為若干個規模更小但結構與原問題相似的子問題。遞迴地解這些子問題,然後將這些子問題的解組合為原問題的解。對於陣列a,隨機選擇乙個元素作為基準數pos,一般為第乙個元素或最後乙個元素。將該陣列分為兩堆a 0,pos index 1 和 a ...
Java實現快速排序演算法
一 演算法描述 快速排序是對氣泡排序的一種改進。在氣泡排序中,記錄每次都是與相鄰位置上的資料作比較,因此每次只能移動乙個位置。而在快速排序中,記錄的比較和移動都是從兩端向中間進行的。其主要思想 首先在待排序陣列中選取乙個基準值 作為比較物件 然後利用基準值將待排陣列分成2個部分。基準值左邊的陣列的資...