/**
* 快速排序法
* @author shoper
*/public class quicksorttest ;
system.out.println("原始資料");
for (integer integer : array)
// 陣列剛開始,還未排序。傳入的的資料為:陣列,從哪個位置開始排序,到什麼位置結束
system.out.println("\n排序後");
new quicksorttest().sortfactory(array, 0, array.length-1 );
for (integer integer : array)
} public void sortfactory(integer array, integer left, integer right)
// 找出右邊比中間值大的數,如果沒有則繼續迴圈
while (array[end].compareto(middle) > 0 && end > left)
// 將左邊大的數和右邊小的數進行替換
if (start <= end)
if (!(start <= end))
} if (start < right)
if (end > left)
}}
Java的快速排序法
花了很久的時間才搞定,根據演算法導論裡面的偽 寫的 最初在網上找的例子都有問題,不知為啥,都把我給搞暈了 然後按偽 來寫,也出錯,真是很鬱悶 然後全部刪掉重新寫了很多次,突然間就寫好了 主要難點在於partition函式,裡面的i和j的關係,它們的值在什麼時候進行交換 可能是很久沒有考慮過資料結構的...
java之快速排序
快速排序利用分治法的思想,先設定乙個基準 通常可以設定陣列的第乙個元素為基準 通過一趟快速排序使得左邊的資料比基準都要小,右邊的資料比基準都要大。然後利用相同的思想分別對左邊和右邊的資料進行快排,從而達到有序。一趟快速排序的思想的是 給定乙個陣列array,初始時以陣列的第乙個元素作為基準,先從右往...
Java排序之快速排序 2
快速排序 快排的平均效率總的來說是最快的排序演算法,但是他也有那種最壞的情況。比如說一組陣列然後要排成順序,那麼他的時間複雜度就成了o n 2 當然這個是最壞情況不會經常遇到,但是我們總要了解下。好了 然後接下來是我個人對快排的一些簡單總結 在快排 quicksort 中,我們一般會選出乙個中軸 通...