作者rusynth (stw)
站內Programming
標題[問題] 資料結構教科書裡的的merge sort (C語言版本)
時間Wed Jul 25 16:40:49 2012
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)
1F:→ MOONRAKER:很顯然他不想破壞 k 。 118.163.12.174 07/25 16:44
2F:→ rusynth:可是k不是merge的區域變數而已? 114.47.3.117 07/25 16:48
3F:→ suhorng:這些差別不太重要 怎樣都沒差 118.166.52.55 07/25 17:10
4F:→ MOONRAKER:我又沒有你的書在手上 你說區域就區域吧 118.163.12.174 07/25 18:54