快速排序的乙個Java實現

2021-07-10 07:23:05 字數 1206 閱讀 3050

畢業之後遠離演算法好久了,突發奇想寫乙個快排吧,當時怎麼都學不會,看看現在能不能寫出來。

以下是時間線

計時開始

。 。

。 依然有bug

。 。

。 噹噹當,靈機一動

。 。

。 時間啊,等等我

。 。

。 咦,可以了

憋了兩個多小時才寫出了,也是醉了,看來演算法水平還是很菜,不過總算是寫出來了,這次對快排又加深了一點理解。

/**

* created by wsy on 2016/1/13.

*/public

class

test ;

quicksort(arrays, 0, arrays.length - 1);

printarray(arrays);

}private

static

void

quicksort(int arrays, int start, int end)

int middleindex = 0;

int middlevalue = arrays[end];

int guardforward = start;

int guardbackward = end - 1;

while (guardforward < guardbackward)

while (arrays[guardbackward] > middlevalue && guardforward < guardbackward)

swap(arrays, guardforward, guardbackward);

middleindex = guardforward;

}if (middlevalue < arrays[middleindex])

quicksort(arrays, 0, middleindex - 1);

quicksort(arrays, middleindex + 1, end);

return;

}private

static

void

printarray(int arrays)

}private

static

void

swap(int arrays, int i, int j)

}

關於快速排序演算法的乙個實現

快速排序的意思就是說,對於乙個陣列,隨機從陣列中選取乙個值,然後將陣列裡的其他值與選中的值進行比較,小於選中的值的放在左側,大於選中的值的,放在右側。將選中的數放在中間。對於左邊和右邊的部分分別重複這個過程直到每次處理乙個或者兩個值,全部結束後認為排序完成。以下是實現演算法 public void ...

就乙個快速排序。。。

話說,每次寫題的時候我都是呼叫stl的sort,自己卻還是很難快速寫出乙個快排。正好作業布置這個了。就寫一下,熟練一下,順便背一下記住。萬一以後面試問到了,也可以秒了。include include include using namespace std const int maxn 10000 5...

排序 快速排序(java實現)

快速排序是一種非常高效的排序演算法,它採用了 分而治之 的思想,把大的拆分成小的,小的再拆分為更小的。其原理如下 對於給定一組記錄,通過一趟排序後,將原序列分為兩部分,其中前一部分的所有記錄都比後一部分的所有記錄小,然後再依次對前後兩部分的記錄進行快速排序,遞迴該過程,直到序列中所有的記錄均為有序為...