看板 Programming 關於我們 聯絡資訊
Fundamentals of Data Structures in C 2nd Edition 的 Merge Sort 程式碼 其中的 merge 副程式的後半部: if (i > m) for (t=j; t<=n; t++) mergedList[t] = initList[t]; else for (t=i, t<=m; t++) mergedList[k+t-i] = initList[t]; 為什麼 mergedList[t] = initList[t] 不是直接用 mergedList[k++] = initList[t]; 就好了? 最後一行也是,既然 t=i 的話,[k+t-i] 不是跟 [k++] 一樣意思嗎? 為什麼要多此一舉? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.3.117 ※ 編輯: rusynth 來自: 114.47.3.117 (07/25 16:45)
MOONRAKER:很顯然他不想破壞 k 。 118.163.12.174 07/25 16:44
rusynth:可是k不是merge的區域變數而已? 114.47.3.117 07/25 16:48
suhorng:這些差別不太重要 怎樣都沒差 118.166.52.55 07/25 17:10
MOONRAKER:我又沒有你的書在手上 你說區域就區域吧 118.163.12.174 07/25 18:54