เขียน pseudocode เป็นเหมือนการเขียนรหัส: มันไม่สำคัญโดยเฉพาะอย่างยิ่งที่คุณทำตามมาตรฐานตราบใดที่คุณ (และคนที่คุณเขียนด้วย) ปฏิบัติตามจริงบางมาตรฐาน
แต่สำหรับบันทึกนี่เป็นมาตรฐานที่ฉันใช้ในบันทึกการบรรยายงานวิจัยและหนังสือเล่มต่อไป
ใช้ไวยากรณ์ที่จำเป็นมาตรฐานสำหรับโฟลว์การควบคุมและการเข้าถึงหน่วยความจำ - ถ้า, ในขณะ, สำหรับ, ส่งคืน, อาร์เรย์ [ดัชนี], ฟังก์ชัน (อาร์กิวเมนต์) สะกด "อื่นถ้า"
- แต่ใช้field(record)แทน
record.field
หรือrecord->field
xyx*y
s ≤ ที¬ พี√amodba%b
s≤ts <= t
¬p!p
เธ∞x−−√sqrt(x)
πPI
∞MAX_INT
ย่อน้ำตาลประโยคให้น้อยที่สุด - ระบุโครงสร้างบล็อกโดยการเยื้องที่สอดคล้องกัน (à la Python) งดคำหลักหวานเช่น "เริ่มต้น / สิ้นสุด" หรือ "ทำ / od" หรือ "fi" ละเว้นหมายเลขบรรทัด ไม่ได้เน้นคำหลักเช่น "สำหรับ" หรือ "ในขณะที่" หรือ "ถ้า" โดยการตั้งค่าไว้ในที่แตกต่างกันtypeface
หรือสไตล์ เคย ทำไม่ได้
แต่ชื่ออัลกอริทึมของเรียงพิมพ์และค่าคงที่ใน \ ตำราc {Small Caps}, ชื่อตัวแปรในตัวเอียงและสตริงตัวอักษรใน sans serif
แต่เพิ่มช่องว่าง "หายใจ" ในแนวดิ่ง ( \\[0.5ex]
) จำนวนหนึ่งระหว่างชิ้นโค้ดที่มีความหมาย
อย่าระบุรายละเอียดที่ไม่สำคัญ ถ้ามันไม่สำคัญว่าคุณจะไปที่จุดยอดนิยมเพียงแค่พูดว่า "สำหรับทุกจุด"
ยกตัวอย่างเช่นที่นี่เป็นสูตร recursive ของขั้นต่ำขั้นตอนวิธีต้นไม้ทอด Boruvka ของ ก่อนหน้านี้ฉันได้กำหนดเป็นกราฟที่ได้รับจากโดยการหดตัวขอบทั้งหมดในชุดและแบนเป็นรูทีนย่อยที่ลบลูปและขอบขนานG LG/LGL
ฉันใช้algorithm
สภาพแวดล้อม LaTeX ที่มีน้ำหนักเบาของฉันเพื่อพิมพ์รหัสเทียม (เป็นเพียงtabbing
สภาพแวดล้อมภายใน\fbox
) นี่คือซอร์สโค้ดของฉันสำหรับอัลกอริทึมของBorůvka:
\begin{algorithm}
\textul{$\textsc{Borůvka}(G)$:}\+
\\ if $G$ has no edges\+
\\ return $\varnothing$\-
\\[0.5ex]
$L \gets \varnothing$
\\ for each vertex $v$ of $G$\+
\\ add the lightest edge incident to $v$ to $L$\-
\\[0.5ex]
return $L \cup \textsc{Borůvka}(\textsc{Flatten}(G / L))$
\end{algorithm}