JAVA排序之快速排序法 源自張孝祥面試題

2021-06-12 17:49:01 字數 694 閱讀 4230

/**

* 快速排序法

* @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 中,我們一般會選出乙個中軸 通...