Discussion:
[問題] Pseudo-Code
(时间太久无法回复)
沒有怎麼辦
2006-03-24 06:00:07 UTC
Permalink
以下是我寫的Insertion-Sort(A) Pseudo Code
Insertion-Sort(A)
for i:=2 to length of A
for j:=i to 2
if A[j]>A[j-1]
then swap(A[j], A[j-1])
else
break

不是要問這演算法對不對 而是我的Pseudo Code語法是對的嗎???
去查網站又說Pseudo Code很難定義 給的例子和課本也不一樣

而課本寫的和我的又不一樣
課本的for下面會接do如:
for blah blah
do blah blah
blah blah <==像課本這一行為了do縮排兩次 我看了只覺得多餘

課本也沒有break 因為他用while 方法不一樣
另外寫Pseudo需不需要註明陣列是1起始還是0起始???
有沒有for j:=i to 2這種遞減的寫法???

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.34.90.184
※ 編輯: Arton0306 來自: 218.34.90.184 (03/24 22:00)
㊣FIRE IN THE HOLE!
2006-03-24 14:23:07 UTC
Permalink
Post by 沒有怎麼辦
以下是我寫的Insertion-Sort(A) Pseudo Code
Insertion-Sort(A)
for i:=2 to length of A
for j:=i to 2
if A[j]>A[j-1]
then swap(A[j], A[j-1])
else
break
不是要問這演算法對不對 而是我的Pseudo Code語法是對的嗎???
去查網站又說Pseudo Code很難定義 給的例子和課本也不一樣
老弟,色即是空,空即是色
你老要問空有多空,色有多色,只是把自己搞垮而已
Post by 沒有怎麼辦
課本也沒有break 因為他用while 方法不一樣
另外寫Pseudo需不需要註明陣列是1起始還是0起始???
如果你認為會造成困擾,就寫出來
例如 *NOTE: all array subscripts start from 0
你要寫中文也可以
你要照微軟BASIC習慣寫option base 1也隨你便 但是大部分人應該看不懂
你要照FORTRAN習慣寫A(0:12) B(1:33)也可以
Post by 沒有怎麼辦
有沒有for j:=i to 2這種遞減的寫法???
你可以用downto, 例如for j:=18 downto 2
不然你寫 j runs from i down to 2
甚至寫 j = i .. 2 都可以

沒人管你,真的!
 
--
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 For the King and country must we secure all the advantages! 
_______________________________________

"Scarazin V1"
-- journeyman --
--
┌─────◆KKCITY◆─────┐ ◢ ◤ 動態歌詞 讓你成為K歌之王!
│ bbs.kkcity.com.tw │ \^_^ /  ★ http://www.kkbox.com.tw ★
└──《From:218.160.86.9 》──┘   ◤ 唱片公司授權,音樂盡情下載
--
Wei Hu
2006-03-24 07:43:47 UTC
Permalink
※ 引述《Arton0306 (沒有怎麼辦)》之銘言:
: 課本也沒有break 因為他用while 方法不一樣
: 另外寫Pseudo需不需要註明陣列是1起始還是0起始???
: 有沒有for j:=i to 2這種遞減的寫法???

pseudo code 喔...
都可以吧
你想怎麼寫就怎麼寫
反正你同事, 或你老師, 或你同學, 或你客戶看得懂就好了
不用太拘泥了

--
Wei Hu
http://www.csie.ntu.edu.tw/~r88052/main/tw/index.php
http://spaces.msn.com/wei0905/

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.70.92.101
異議!
2006-03-24 20:29:06 UTC
Permalink
※ 引述《Arton0306 (沒有怎麼辦)》之銘言:
: 以下是我寫的Insertion-Sort(A) Pseudo Code
: Insertion-Sort(A)
: for i:=2 to length of A
: for j:=i to 2
: if A[j]>A[j-1]
: then swap(A[j], A[j-1])
: else
: break
: 不是要問這演算法對不對 而是我的Pseudo Code語法是對的嗎???
: 去查網站又說Pseudo Code很難定義 給的例子和課本也不一樣

假程式碼的"不對"只會發生在指令使用前後不一致,以及難以理解,難以閱讀等情況.
你的假程式碼基本上是對的,但break是學過C與Java的人才看得懂,
應該改成stop loop j.

我寫SQL寫多了,最近寫的假程式碼指令集就變得很像SQL:

Read 關鍵字 Into 暫存資料 #Read指外部輸入#
Get 使用記錄 With 內容 = 暫存資料 Into 使用記錄資料 #Get指檔案輸入#
For Each 個別使用記錄資料 In 使用記錄資料
Write 個別使用記錄資料 #Write一般是指輸出到螢幕#
查詢計次 = 查詢次數 + 1
#查詢次數是使用記錄資料的一欄位,要對照資料字典#
Write 查詢計次 As 查詢次數 Into 個別使用記錄資料
#Write Into指輸出到檔案#
Next

說穿了,假程式碼根本沒有機器編譯的問題,你不必討論它在這方面對不對.



--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.74.95
※ 編輯: razor 來自: 220.139.74.95 (03/25 12:28)
※ 編輯: razor 來自: 220.139.74.95 (03/25 12:29)
继续阅读narkive:
Loading...