Skip to main content

อัลกอริทึมคืออะไร?

วิทยาการคำนวณ EP8 อัลกอริทึม Algoritms(Computational thinking) ตอน อัลกอริทึมคืออะไร Kids Coding (อาจ 2025)

วิทยาการคำนวณ EP8 อัลกอริทึม Algoritms(Computational thinking) ตอน อัลกอริทึมคืออะไร Kids Coding (อาจ 2025)
Anonim

อัลกอริทึมคือชุดคำสั่ง คำนิยามนั้นง่ายมาก อัลกอริทึมสามารถทำได้ง่ายเหมือนกับการให้คำแนะนำดังนี้:

  1. ไปตามถนน
  2. เลี้ยวขวาแรก
  3. ค้นหาบ้านหลังที่สองทางด้านซ้าย
  4. เคาะประตู.
  5. ส่งมอบแพคเกจ

แต่ในขณะที่ความหมายของอัลกอริธึมเป็นเรื่องที่เรียบง่ายความหมายที่แท้จริงและผลกระทบที่มีต่อชีวิตของเราอาจเป็นเรื่องที่ค่อนข้างซับซ้อน

ตัวอย่างของอัลกอริทึม

ตัวอย่างทั่วไปของอัลกอริทึมที่เราใช้ในชีวิตประจำวันของเราคือสูตร คำแนะนำชุดนี้ทำให้เรามีส่วนผสมทั้งหมดที่เราต้องการและคำแนะนำในการทำส่วนผสมเหล่านั้น เสียงง่ายใช่มั้ย?

แต่ถ้าคุณไม่ทราบว่าจะเก็บถ้วยตวงไว้ที่ไหน? คุณต้องใช้อัลกอริทึมเพื่อค้นหา คุณอาจต้องใช้อัลกอริทึมในการใช้ถ้วยชาม

ดังนั้นในขณะที่อัลกอริทึมเป็นชุดของคำแนะนำก็ยังต้องคำนึงถึงผู้ที่หรือสิ่งที่จะตีความคำแนะนำเหล่านั้น ตัวอย่างเช่นถ้าคุณให้คำแนะนำแก่เพื่อนรายละเอียดเกี่ยวกับวิธีเดินทางจากบ้านไปที่ร้านขายของชำที่ใกล้ที่สุดเพื่อนของคุณจะรู้ได้อย่างไรว่าจะไปที่ร้านดังกล่าวได้อย่างไรหากรู้ว่าบ้านของคุณอยู่ที่ใด พวกเขายังไม่สามารถหาร้านขายของชำแห่งนี้ได้ว่าเป็นบ้านของเพื่อนคนอื่น

นี่เป็นวิธีที่อัลกอริธึมสามารถทำได้ง่ายและซับซ้อน และเมื่อเราพูดถึงในแง่ของอัลกอริทึมคอมพิวเตอร์การทำความเข้าใจว่าคอมพิวเตอร์สามารถทำอะไรได้นั้นเป็นส่วนสำคัญในการจัดทำอัลกอริทึม

วิธีการจัดเรียงอัลกอริทึม

อัลกอริทึมที่เก่าที่สุดที่สร้างขึ้นคือรูทีนการจัดเรียงฟอง การจัดเรียงแบบฟองสบู่เป็นวิธีการเรียงลำดับตัวเลขตัวอักษรหรือคำต่างๆโดยการวนซ้ำผ่านชุดข้อมูลเปรียบเทียบชุดของค่าแต่ละค่าและวางเรียงตามความต้องการเมื่อจำเป็น

ลูปนี้จะถูกทำซ้ำจนกว่าอัลกอริธึมสามารถเคลื่อนที่ผ่านรายการทั้งหมดได้โดยไม่จำเป็นต้องสลับอะไรซึ่งหมายความว่าค่าถูกเรียงอย่างถูกต้อง อัลกอริธึมชนิดนี้มักถูกเรียกว่าอัลกอริทึมแบบทวนซ้ำเนื่องจากมีการวนซ้ำไปเรื่อย ๆ จนกระทั่งเสร็จสิ้นภารกิจ

อัลกอริธึมประเภทนี้อาจดูง่ายๆดังนี้

  1. ไปที่ค่าแรก
  2. ตรวจสอบว่ามูลค่ากับมูลค่าถัดไปและตำแหน่ง swap ถ้าจำเป็น
  3. ไปที่ค่าถัดไปและทำซ้ำการเปรียบเทียบ
  4. ถ้าเราอยู่ในตอนท้ายของรายการให้กลับไปที่ด้านบนถ้ามีการเปลี่ยนค่าใด ๆ ในระหว่างลูป

แต่การจัดเรียงฟองสบู่ไม่ได้กลายเป็นส่วนใหญ่ ที่มีประสิทธิภาพ วิธีการเรียงลำดับค่า เมื่อเวลาผ่านไปและคอมพิวเตอร์มีความสามารถในการทำงานที่ซับซ้อนได้อย่างรวดเร็วขึ้นระบบอัลกอริธึมการเรียงลำดับใหม่ก็ลุกขึ้น

หนึ่งในขั้นตอนดังกล่าวจะสแกนผ่านรายการแรกและสร้างรายการลำดับที่สองของค่า วิธีนี้จะทำให้ผ่านเพียงครั้งเดียวผ่านรายการเดิมและมีค่าแต่ละค่าจะวนไปตามรายการที่สองจนกว่าจะหาตำแหน่งที่ถูกต้องในการใส่ค่า โดยปกติแล้วจะมีประสิทธิภาพมากกว่าการใช้วิธีจัดเรียงแบบฟองสบู่

นี่คือที่ขั้นตอนวิธีสามารถได้รับบ้าจริงๆ หรือจริงๆน่าสนใจขึ้นอยู่กับว่าคุณมองไปที่มัน

แม้ว่าวิธีการจัดเรียงแบบฟองสบู่ถือเป็นวิธีการหนึ่งที่ไม่มีประสิทธิภาพมากที่สุดในการจัดเรียงค่าในหลาย ๆ ด้านหากรายการต้นฉบับถูกจัดเรียงอย่างถูกต้องการจัดเรียงแบบฟองอาจเป็นหนึ่งใน มากที่สุด ที่มีประสิทธิภาพ นั่นเป็นเพราะในกรณีดังกล่าวอัลกอริทึมการจัดเรียงข้อมูลแบบฟองสบู่จะผ่านรายการเพียงครั้งเดียวและระบุว่ามีการจัดเรียงอย่างถูกต้อง

น่าเสียดายที่เราไม่ทราบว่ารายการของเราถูกจัดเรียงไว้หรือไม่ดังนั้นเราจึงต้องเลือกอัลกอริทึมที่จะมีประสิทธิภาพมากที่สุดในการใช้งานโดยเฉลี่ยในรายการจำนวนมาก

สิ่งที่เราเรียนรู้จากฟองสบู่อัลกอริทึม

  • อัลกอริธึมมีวิวัฒนาการไปเรื่อย ๆ ในขณะที่เราพบวิธีที่มีประสิทธิภาพมากขึ้นในการทำสิ่งต่างๆและ / หรือคอมพิวเตอร์มีความสามารถในการดำเนินงานที่ซับซ้อนได้มากขึ้น
  • อัลกอริธึมบางครั้งได้รับการคัดเลือกเพราะพวกเขา "มีประสิทธิภาพมากขึ้น" มากที่สุดในเวลา
  • เพียงเพราะอัลกอริทึมมีประสิทธิภาพมากกว่าตลอดเวลาไม่ได้หมายความว่าดีที่สุดในแต่ละกรณีเสมอไป

อัลกอริทึม Facebook และอื่น ๆ ในชีวิตประจำวัน

อัลกอริธึมทำงานได้ทุกวัน เมื่อคุณค้นหาเว็บอัลกอริทึมจะทำงานเพื่อหาผลการค้นหาที่ดีที่สุด สอบถามสมาร์ทโฟนของคุณเพื่อขอเส้นทางและอัลกอริทึมจะตัดสินใจเส้นทางที่ดีที่สุดสำหรับคุณ และเมื่อคุณเรียกดู Facebook อัลกอริทึมจะตัดสินใจว่าโพสต์ Facebook ของเพื่อนคนไหนที่สำคัญที่สุดสำหรับเรา (หวังว่าเพื่อนของเราจะไม่พบว่า Facebook คนใดคิดว่าเราชอบมากที่สุด!)

แต่คิด algorithmically สามารถช่วยให้เราไกลเกินชีวิตของเราคอมพิวเตอร์ มันยังสามารถช่วยให้เราสร้างแซนวิชได้ดีขึ้น

สมมติว่าฉันเริ่มต้นด้วยสองชิ้นขนมปังกระจายมัสตาร์ดบนชิ้นหนึ่งและมายองเนสบนชิ้นอื่น ฉันใส่เนยแข็งลงบนขนมปังที่มีมายองเนสแฮมบางตัวอยู่ด้านบนนั้นผักกาดหอมบางชิ้นมะเขือเทศสองชิ้นแล้วใส่ฝากับมัสตาร์ดที่มัน แซนวิชดีใช่มั้ย?

แน่นอนถ้าฉันกินมันทันที แต่ถ้าฉันปล่อยให้มันอยู่บนโต๊ะในขณะที่ขนมปังด้านบนบางส่วนอาจได้รับเปียกจากการดื่มด่ำกับมะเขือเทศที่ เป็นปัญหาที่ฉันไม่ค่อยคาดหวังและฉันอาจทำแซนวิชเป็นเวลาหลายปีก่อนที่จะสังเกตเห็น แต่เมื่อฉันทำแล้วฉันสามารถเริ่มคิดหาวิธีเปลี่ยนอัลกอริทึมของฉันเพื่อสร้างแซนวิชที่ดีขึ้น

ตัวอย่างเช่นฉันสามารถกำจัดมะเขือเทศได้ แต่ฉันไม่อยากสูญเสียรสมะเขือเทศนั้น ดังนั้นแทนฉันสามารถวางมะเขือเทศลงในแซนด์วิชหลังจากขนมปังและผักกาดหอม นี้ช่วยให้ผักกาดหอมเพื่อสร้างอุปสรรคป้องกันระหว่างมะเขือเทศและขนมปัง

นี่เป็นวิธีที่วิวัฒนาการไป และอัลกอริทึมไม่จำเป็นต้องถูกเรียกใช้โดยคอมพิวเตอร์เพื่อให้เป็นอัลกอริทึมอัลกอริทึมคือกระบวนการและกระบวนการทั้งหมดรอบตัวเรา