[問題] 資料結構教科書裡的的merge sort (C語言版本)

看板Programming作者 (stw)時間13年前 (2012/07/25 16:40), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/1
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)

07/25 16:44, , 1F
很顯然他不想破壞 k 。
07/25 16:44, 1F

07/25 16:48, , 2F
可是k不是merge的區域變數而已?
07/25 16:48, 2F

07/25 17:10, , 3F
這些差別不太重要 怎樣都沒差
07/25 17:10, 3F

07/25 18:54, , 4F
我又沒有你的書在手上 你說區域就區域吧
07/25 18:54, 4F
文章代碼(AID): #1G3x4J8B (Programming)
文章代碼(AID): #1G3x4J8B (Programming)