[考題] 103高考資料處理 插入排序法

作者: hongsing (star)   2014-08-10 09:41:49
排序的元素太多且無法複製到不同的儲存區的元素順序的排列方法一般稱之為內部排序
(Internal Sort)法,請說明下列程式虛擬碼(Pseudo Code)演算過程的意義,並請
說明其排序法的名稱為何?(10分)並請用數列(X1, X2, X3, X4, X5)=(8, 7, 2, 4, 6
)為例說明其運算內容。(15分)
演算程式虛擬碼:
第一行 X0← -∞
第二行 For j=2 to n do
第三行 i ← j-1
第四行 t ← Xj
第五行 While t < Xi do
第六行 Xi+1 ← Xi
第七行 i← i-1
第八行 Xi+1 ← t
高X和志X的答案皆為插入排序法,不才也懂的插入排序法的基本原理,但題目的演算程
式虛擬碼看不太懂:1.感覺是數學的極限,但寫法似乎是顛倒的。
2.裡面感覺夾雜著for和While語法。
總而言之,雖然短短幾行,就是不解其意(不才非資訊相關科系)。資訊或統計類的
高手能否為不才針對每行進行較詳細淺顯的解說?另外不才要如何補強程式與程式虛擬
碼這一塊?也請高手們能不吝指教,感激不盡!
作者: folksuite (Z)   2014-08-10 10:18:00
虛擬碼本來就無固定寫法,第一行應該是想表示X0不存在(
作者: okstephen1 (ㄌㄩㄝ)   2014-08-10 10:19:00
1.你想的太難了 把符號變成=, Xj看成陣列
作者: folksuite (Z)   2014-08-10 10:20:00
我認為啦!);"←"則相當於程式語言中的"="
作者: okstephen1 (ㄌㄩㄝ)   2014-08-10 10:20:00
2. 拿真的code出來看
作者: folksuite (Z)   2014-08-10 10:24:00
迴圈請自己再去多翻閱書籍吧!文字很難說清楚…
作者: aldam (aldam)   2014-08-10 10:25:00
for裡面沒寫條件,條件判斷放在while真的用程式寫,for+if 或 do while+if就可以處理掉了我蠻討厭看虛擬碼的,很簡單的東西搞得很複雜
作者: folksuite (Z)   2014-08-10 10:30:00
想加強程式語言可看看交大鄭昌杰老師的開放課程,課程對象是高中生且可實際寫C語言,缺點是課程很長且高中生挺吵的,建議心有餘力再看。
作者: hongsing (star)   2014-08-10 11:47:00
想再請問各位高手第5行到第8行的意思
作者: Horvitz (霍維茨)   2014-08-10 14:58:00
第一行是X0為極小數,while迴圈裡才能比較。5~8行是在將元素排在正確的位置。
作者: ai8051 (aii)   2014-08-10 21:46:00
開放式課程還有另一位上的,鄭的課堂有小屁孩很吵,一直叫

Links booklink

Contact Us: admin [ a t ] ucptt.com