我學習了合併排序,並在合併步驟中將sentinel用作無窮大。什麼是C語言的哨兵?我正在學習合併排序,並在合併步驟中使用哨兵作爲無窮大
這是來自Cormen的書中的算法。 爲什麼我們在步驟8和9中使用了無窮大?
MERGE(A, p, q, r)
1 n1 ← q − p + 1
2 n2 ← r − q
3 create arrays L[1 . . n1 + 1] and R[1 . . n2 + 1]
4 for i ← 1 to n1
5 do L[i ] ← A[ p + i − 1]
6 for j ← 1 to n2
7 do R[ j ] ← A[q + j ]
8 L[n1 + 1] ← ∞
9 R[n2 + 1] ← ∞
10 i ← 1
11 j ← 1
12 for k ← p to r
13 do if L[i ] ≤ R[ j ]
14 then A[k] ← L[i ]
15 i ← i + 1
16 else A[k] ← R[ j ]
17 j ← j + 1
這不是一個c代碼??。 – obo
這只是算法...僞代碼 – zedai