[問題] Merge Sort程式Bug找不到

作者: haloha1234 (半夜睡不著覺)   2016-12-16 18:03:05
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
問題(Question):
目前自己在練習DS聖經本第二版的Program 7.9(page 410)
http://imgur.com/a/CJ4wZ
題目如上,要把unsorted的array兩兩排序
預期的正確結果(Expected Output):
依照我的程式邏輯,輸出結果應該會是如下
5,26,1,77,11,61,15,59,19,48
1,5,26,77,11,15,59,61,19,48
1,5,11,15,26,59,61,66,19,48
1,5,11,15,19,26,48,59,61,77
錯誤結果(Wrong Output):
但我得到的結果反而是如下
5,26,1,77,11,61,15,59,19,48,
1,1,1,77,11,15,15,59,19,48,
1,1,1,11,11,15,15,59,0,0,
1,1,1,11,11,15,15,59,0,0,
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/w4AnNE
補充說明(Supplement):
長度為1的Sublist(S=1)合併所得的結果是正確的
但當S=2進入Merge函數時,iniList的資料會亂掉,
之後就無法得到正確的答案。
看了很久還是不知道iniList亂掉的原因,希望版上大大幫忙
第一次版上發文,格式不對會再修改 謝謝大家
作者: kiedveian (極地之星光)   2016-12-16 18:14:00
39行,iniList 和 tempList 指到同一塊空間了你想要的應該是將 tempList 複製至 tempList 吧?iniList

Links booklink

Contact Us: admin [ a t ] ucptt.com