伊莉討論區
標題:
非遞迴Merge Sort
[打印本頁]
作者:
nemm08
時間:
2013-4-12 02:57 PM
標題:
非遞迴Merge Sort
最近有一份作業 要用stack 寫 非遞迴Merge Sort 加上 Comparator
public static <T> void mergeSort(T[] arr, Comparator<? super T> comp){
}
不知道如何開始: 有人可以給pseudocode ? 或解釋一下我該如何開始
作者:
g78312824123
時間:
2013-4-12 06:13 PM
以下不是code喔~~
Function mergeSort(Type data[1..n])
If n <= 1 then return
Index i, j, k
For i from 2 to (n / 2) do
For j from 0 to (n - 1) step (2 * i) do
Index x, y
x = min(i, n - j)
y = min(i, max(0, n - i - j))
Type left[1..x], right[1..y]
For k from 1 to x do
left[k] = data[j + k]
For k from 1 to y do
right[k] = data[i + j + k]
Index p, q, r
p = q = 1
r = j
While p <= x and q <= y do
If left[p] < right[q] then
data[r] = left[p]
p = p + 1
Else
data[r] = right[q]
q = q + 1
r = r + 1
While p <= x do
data[r] = left[p]
p = p + 1
r = r + 1
While q <= y do
data[r] = right[q]
q = q + 1
r = r + 1
End
複製代碼
作者:
nemm08
時間:
2013-4-13 12:24 AM
g78312824123 發表於 2013-4-12 06:13 PM
以下不是code喔~~
我已經學會了 但還是感恩!
歡迎光臨 伊莉討論區 (http://a401.file-static.com/)
Powered by Discuz!