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

ค้นพบวิธีที่อัลกอริทึมใช้งานได้ทั่วโลก

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

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

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

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

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

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

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

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

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

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

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

อัลกอริทึมอาจดูง่ายเหมือน:

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

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

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

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

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

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

สิ่งที่เราเรียนรู้จาก Bubble Sort

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

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

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

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

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

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

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