ความหมายของ “ขั้นตอนวิธี” (Algorithm)
ในกระบวนการแก้ปัญหาด้วยคอมพิวเตอร์หรือแม้แต่ในชีวิตประจำวัน หนึ่งในแนวคิดสำคัญที่ใช้ในการดำเนินงานคือ “ขั้นตอนวิธี” หรือที่เรียกในภาษาอังกฤษว่า Algorithm ซึ่งหมายถึง
ลำดับของคำสั่งหรือกระบวนการที่มีการจัดเรียงอย่างชัดเจน เพื่อแก้ไขปัญหาหนึ่ง ๆ ให้ได้ผลลัพธ์ตามต้องการ โดยต้องมีจุดเริ่มต้นและจุดสิ้นสุดที่แน่นอน
ตัวอย่างที่ง่ายที่สุดของการใช้ขั้นตอนวิธี คือ การทำอาหาร การเดินทาง หรือแม้แต่การล็อกอินเข้าสู่ระบบเว็บไซต์ ก็ล้วนต้องอาศัยลำดับของการกระทำที่ชัดเจน ซึ่งสามารถจัดเป็นขั้นตอนวิธีได้ทั้งสิ้น
ลักษณะสำคัญของขั้นตอนวิธีที่ดี
- ชัดเจนแน่นอน (Definiteness)
แต่ละขั้นตอนต้องมีความชัดเจน ไม่กำกวม และสามารถเข้าใจได้โดยไม่ต้องตีความหลายทาง - มีจุดเริ่มต้นและจุดสิ้นสุด (Finiteness)
ขั้นตอนวิธีต้องมีจุดเริ่มต้นและสิ้นสุดในเวลาที่จำกัด ไม่เกิดการวนซ้ำไม่รู้จบ - สามารถนำไปใช้ซ้ำได้ (Effectiveness)
คำสั่งภายในขั้นตอนวิธีต้องสามารถนำไปปฏิบัติจริงได้ และให้ผลลัพธ์ที่ถูกต้องในทุกครั้งที่ใช้งาน - นำไปใช้แก้ปัญหาได้ (Input-Output Defined)
ขั้นตอนวิธีควรมีการรับข้อมูลเข้า (Input) และให้ผลลัพธ์ออก (Output) ที่สอดคล้องกับวัตถุประสงค์ของการแก้ปัญหา
รูปแบบการเขียนขั้นตอนวิธี
การเขียนขั้นตอนวิธีสามารถนำเสนอได้หลายรูปแบบ ซึ่งขึ้นอยู่กับวัตถุประสงค์ในการใช้งาน ได้แก่
1. ภาษาธรรมชาติ
ใช้ภาษาไทยหรือภาษาอังกฤษธรรมดาในการลำดับขั้นตอน เช่น
โจทย์: หาผลรวมของตัวเลขสองจำนวน
ขั้นตอนวิธี:
- รับค่าตัวเลขจำนวนที่ 1
- รับค่าตัวเลขจำนวนที่ 2
- คำนวณผลรวม
- แสดงผลลัพธ์
2. รหัสลำลอง (Pseudocode)
เป็นรูปแบบการเขียนที่มีลักษณะกึ่งโค้ด กึ่งภาษาธรรมดา โดยไม่ยึดติดกับภาษาคอมพิวเตอร์ใดภาษาหนึ่ง
เริ่ม
รับค่า A และ B
ผลรวม = A + B
แสดงผลรวม
จบ
ตัวอย่าง
ตัวอย่างที่ 1
โจทย์: การล้างมือให้สะอาดตามหลักอนามัย
ขั้นตอนวิธี:
- เปิดก๊อกน้ำและทำให้มือเปียก
- บีบสบู่ลงบนฝ่ามือ
- ถูมือให้ทั่วทั้งฝ่ามือ หลังมือ ซอกนิ้ว และใต้เล็บ
- ล้างออกด้วยน้ำสะอาด
- ปิดก๊อกน้ำ
- เช็ดมือให้แห้งด้วยผ้าหรือกระดาษ
ตัวอย่างที่ 2
โจทย์: การคำนวณหาคะแนนเฉลี่ยของนักเรียน 3 วิชา
ขั้นตอนวิธี:
- รับคะแนนวิชาที่ 1
- รับคะแนนวิชาที่ 2
- รับคะแนนวิชาที่ 3
- คำนวณผลรวมของคะแนนทั้ง 3 วิชา
- หารผลรวมด้วย 3 เพื่อหาค่าเฉลี่ย
- แสดงผลลัพธ์ค่าเฉลี่ย
ตัวอย่างที่ 3
โจทย์: การปลดล็อกโทรศัพท์มือถือด้วยรหัสผ่าน
ขั้นตอนวิธี:
- กดปุ่มเปิดหน้าจอ
- ป้อนรหัสผ่านที่ตั้งไว้
- ตรวจสอบว่ารหัสผ่านถูกต้องหรือไม่
- ถ้าถูกต้อง ให้เข้าหน้าหลัก
- ถ้าผิด ให้แจ้งเตือนและกลับไปที่ข้อ 2
ตัวอย่างที่ 4
โจทย์: การชงกาแฟ 3 in 1
ขั้นตอนวิธี:
- เตรียมแก้วกาแฟ
- เทผงกาแฟ 3 in 1 ลงในแก้ว
- เติมน้ำร้อนลงในแก้ว
- คนให้เข้ากันผ
- ตรวจสอบอุณหภูมิ ถ้าร้อนเกินไปให้รอให้เย็นก่อนดื่ม
ตัวอย่างที่ 5
โจทย์: การเดินทางจากบ้านไปโรงเรียน
ขั้นตอนวิธี:
- ตื่นนอนและอาบน้ำแต่งตัว
- ตรวจสอบของที่ต้องนำไปโรงเรียน
- เดินหรือขึ้นรถไปยังป้ายรถประจำทาง
- รอรถโดยสารและขึ้นรถ
- ลงรถที่หน้าประตูโรงเรียน
- เดินเข้าโรงเรียนและเข้าสู่ห้องเรียน
ตัวอย่างที่ 6
โจทย์: การสั่งอาหารผ่านแอปพลิเคชัน
ขั้นตอนวิธี:
- เปิดแอปพลิเคชันส่งอาหาร
- ค้นหาร้านค้าที่ต้องการ
- เลือกเมนูอาหาร
- กดเพิ่มลงตะกร้า
- ยืนยันรายการสั่งซื้อ
- เลือกวิธีชำระเงิน
- รอรับอาหารที่บ้าน
ตัวอย่างที่ 7
โจทย์: การตั้งปลุกบนโทรศัพท์มือถือ
ขั้นตอนวิธี:
- เปิดแอปนาฬิกาบนโทรศัพท์
- เลือกเมนูตั้งปลุก
- เลือกเวลาที่ต้องการ
- กำหนดเสียงปลุก
- กดบันทึกการตั้งค่า
ตัวอย่างที่ 8
โจทย์: การเปิดบัญชีธนาคาร
ขั้นตอนวิธี:
- เตรียมบัตรประชาชนและเอกสารที่เกี่ยวข้อง
- เดินทางไปธนาคาร
- รับบัตรคิวเพื่อเปิดบัญชี
- รอเรียกคิวและยื่นเอกสารให้เจ้าหน้าที่
- กรอกแบบฟอร์มเปิดบัญชี
- รับสมุดบัญชีและบัตร ATM
- ตรวจสอบข้อมูลและกลับบ้าน
ตัวอย่างที่ 9
โจทย์: การล้างจานหลังรับประทานอาหาร
ขั้นตอนวิธี:
- เก็บจานจากโต๊ะอาหาร
- ล้างเศษอาหารออก
- ใส่น้ำยาล้างจานลงบนฟองน้ำ
- ถูจานให้สะอาด
- ล้างจานด้วยน้ำสะอาด
- วางจานบนชั้นตากให้แห้ง
ตัวอย่างที่ 10
โจทย์: การเช็กผลสอบจากเว็บไซต์โรงเรียน
ขั้นตอนวิธี:
- เปิดเบราว์เซอร์อินเทอร์เน็ต
- เข้าสู่เว็บไซต์โรงเรียน
- เลือกเมนู “ตรวจสอบผลการเรียน”
- ป้อนรหัสนักเรียนและวันเดือนปีเกิด
- กดปุ่ม “ค้นหา”
- อ่านผลการเรียนที่แสดงบนหน้าจอ
การหา ห.ร.ม. ของจำนวนสองจำนวน โดยใช้วิธียุคลิด
โจทย์:
จงหาค่า ห.ร.ม. ของเลข 48 และ 18 ด้วยวิธียุคลิด
หลักการของ “วิธียุคลิด”:
ถ้าเราต้องการหา ห.ร.ม. ของจำนวนเต็มสองจำนวน เช่น A
และ B
โดยที่ A > B
เราจะใช้สูตร:
ห.ร.ม. (A, B) = ห.ร.ม. (B, A mod B)
ทำซ้ำเรื่อย ๆ จนกระทั่งเศษ (A mod B) = 0
ค่าของ B ในรอบสุดท้ายก่อนที่เศษจะเป็น 0 คือคำตอบ
ขั้นตอนวิธี (ภาษาธรรมชาติ):
- รับค่าจำนวนเต็มสองจำนวน A และ B
- ตรวจสอบว่า B ไม่เท่ากับ 0
- ถ้า B ≠ 0 ให้
3.1 คำนวณเศษ = A mod B
3.2 กำหนดให้ A = B และ B = เศษ
3.3 ย้อนกลับไปทำข้อ 2 - เมื่อ B = 0 ให้แสดงผล A เป็น ห.ร.ม.
หา ห.ร.ม. (48, 18)
รอบที่ | A | B | A mod B | ค่าที่ใช้ในรอบถัดไป |
---|---|---|---|---|
1 | 48 | 18 | 12 | A = 18, B = 12 |
2 | 18 | 12 | 6 | A = 12, B = 6 |
3 | 12 | 6 | 0 | A = 6, B = 0 |
คำตอบ: ห.ร.ม. (48, 18) = 6
หา ห.ร.ม. (56, 42)
รอบที่ | A | B | A mod B | ค่าที่ใช้ในรอบถัดไป |
---|---|---|---|---|
1 | 56 | 42 | 14 | A = 42, B = 14 |
2 | 42 | 14 | 0 | A = 14, B = 0 |
คำตอบ: ห.ร.ม. (56, 42) = 14
หา ห.ร.ม. (99, 78)
รอบที่ | A | B | A mod B | ค่าที่ใช้ในรอบถัดไป |
---|---|---|---|---|
1 | 99 | 78 | 21 | A = 78, B = 21 |
2 | 78 | 21 | 15 | A = 21, B = 15 |
3 | 21 | 15 | 6 | A = 15, B = 6 |
4 | 15 | 6 | 3 | A = 6, B = 3 |
5 | 6 | 3 | 0 | A = 3, B = 0 |
คำตอบ: ห.ร.ม. (99, 78) = 3
หา ห.ร.ม. (270, 192)
รอบที่ | A | B | A mod B | ค่าที่ใช้ในรอบถัดไป |
---|---|---|---|---|
1 | 270 | 192 | 78 | A = 192, B = 78 |
2 | 192 | 78 | 36 | A = 78, B = 36 |
3 | 78 | 36 | 6 | A = 36, B = 6 |
4 | 36 | 6 | 0 | A = 6, B = 0 |
คำตอบ: ห.ร.ม. (270, 192) = 6
หา ห.ร.ม. (121, 11)
รอบที่ | A | B | A mod B | ค่าที่ใช้ในรอบถัดไป |
---|---|---|---|---|
1 | 121 | 11 | 0 | A = 11, B = 0 |
คำตอบ: ห.ร.ม. (121, 11) = 11
คำถามทบทวนความรู้
- ขั้นตอนวิธีคืออะไร และมีคุณสมบัติสำคัญอะไรบ้าง?
- ลองยกตัวอย่างกิจกรรมในชีวิตประจำวันที่สามารถเขียนเป็นขั้นตอนวิธีได้
- ถ้าขั้นตอนวิธีไม่มีจุดสิ้นสุด จะเกิดปัญหาอะไรขึ้น?
- ระหว่างผังงานและรหัสลำลอง นักเรียนชอบใช้รูปแบบใดมากกว่า เพราะเหตุใด?
สรุป
- ขั้นตอนวิธี (Algorithm) คือแนวทางการแก้ปัญหาที่มีลำดับขั้นตอนชัดเจน
- ขั้นตอนวิธีที่ดีต้อง เข้าใจง่าย ใช้งานได้จริง มีจุดเริ่มต้นและสิ้นสุดแน่นอน
- รูปแบบการเขียนมีหลายแบบ เช่น ภาษาธรรมชาติ รหัสลำลอง และผังงาน
- การฝึกฝนการเขียนขั้นตอนวิธีช่วยเสริมทักษะการคิดเชิงลำดับ และสามารถประยุกต์ใช้ในการเขียนโปรแกรมได้ในอนาคต