作者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