การจัดเรียงอัลกอริทึม: เรียนรู้ว่าทำไมคุณไม่ควรใช้ Bubblesort

การเปิดเผยข้อมูล: การสนับสนุนของคุณช่วยให้เว็บไซต์ทำงานต่อไป! เราได้รับค่าธรรมเนียมการอ้างอิงสำหรับบริการบางอย่างที่เราแนะนำในหน้านี้.


คุณเคยสงสัยหรือไม่ว่าคอมพิวเตอร์ทำให้สิ่งต่าง ๆ เป็นระเบียบได้อย่างไร? เมื่อคุณคลิกปุ่ม A-Z ใน Excel สิ่งที่เกิดขึ้นจริง?

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

นี่คืออัลกอริทึมการเรียงลำดับที่ได้รับความนิยมมากที่สุด.

เรียงลำดับฟอง

การเรียงลำดับฟองเป็นอัลกอริทึมที่ไม่มีประสิทธิภาพ แต่ง่าย มันไม่ค่อยใช้ในทางปฏิบัติ แต่ก็เข้าใจง่าย.

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

ในตัวแปรสองทิศทางจะทำการเปรียบเทียบสลับไปข้างหน้าผ่านรายการแล้วย้อนกลับผ่านรายการ สิ่งนี้จะขยายส่วนที่เรียงลำดับไว้ที่ส่วนท้ายของแต่ละรายการ สิ่งนี้เรียกว่า “ค็อกเทลเชคเกอร์”

ควรใช้ Bubble Sort เมื่อใด

ไม่เลยนอกจากการสาธิต.

ข้อมูลเพิ่มเติมเกี่ยวกับ Bubble Sort

  • คำอธิบายการจัดเรียงฟองจากอัลกอริทึมด้วยรหัสตัวอย่าง;
  • อัลกอริทึมการเรียงลำดับของ Bubble Sorted ในภาษาการเขียนโปรแกรมกว่า 100 ภาษา
  • Bubble Sort แสดงโดย Legos;
  • Bubble Sort แสดงโดยการเต้นรำพื้นบ้านของชาวฮังการี.

เรียงลำดับการแทรก

การเรียงลำดับการแทรกเป็นวิธีที่คนส่วนใหญ่สังหรณ์ใจสิ่งต่าง ๆ ด้วยตนเอง – ตัวอย่างเช่นเมื่อเรียงลำดับเอกสาร มันเกี่ยวข้องกับการเคลื่อนย้ายองค์ประกอบแต่ละส่วนในตำแหน่งที่เหมาะสมภายในส่วนที่เรียงลำดับไว้แล้ว.

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

เมื่อใดจึงจะใช้การจัดเรียงการแทรก

การเรียงลำดับการแทรกเป็นวิธีแก้ปัญหาที่เร็วที่สุดสำหรับการเรียงลำดับรายการขนาดเล็ก (10 หรือน้อยกว่าองค์ประกอบ) และดำเนินการอย่างน้อยเพียงพอในรายการขนาดกลาง อย่างไรก็ตามมันอาจช้าลงในเซตที่ใหญ่กว่า.

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

ข้อมูลเพิ่มเติมเกี่ยวกับการเรียงลำดับการแทรก

  • คำอธิบายการเรียงลำดับการแทรกและการฝึกหัดการเขียนรหัสที่ Khan Academy
  • อัลกอริธึมการจัดเรียงแทรกการเข้ารหัสในเกือบ 100 ภาษาการเขียนโปรแกรมที่แตกต่างกัน
  • การจัดเรียงแทรกแสดงด้วยถ้วยโฟมและบรรยายโดยนักเรียน Harvard CS;
  • การเรียงลำดับภาพประกอบที่แสดงด้วยการเต้นรำพื้นบ้านของฮังการี.

เรียงลำดับกอง

การเรียงลำดับฮีปคือการจัดเรียงแบบสองส่วนที่ใช้โครงสร้างข้อมูลฮีปไบนารีเป็นตัวยึดระดับกลางสำหรับองค์ประกอบในรายการ.

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

เมื่อใดจึงควรใช้ Heap Sort

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

ข้อมูลเพิ่มเติมเกี่ยวกับ Heap Sort

  • คำอธิบายโดยละเอียดของ Heap Sort จาก CS อาจารย์ที่ Kent State
  • Heaps and Heap จัดเรียงวิดีโอบรรยายจาก MIT;
  • สำหรับการทำความเข้าใจอย่างลึกซึ้งเกี่ยวกับการเรียงลำดับของกองและกองดูชุดวิดีโอห้าส่วนนี้.

ผสานเรียง

การผสานรายการที่เรียงลำดับแล้วสองรายการเข้าด้วยกันในรายการที่เรียงลำดับแล้วใหม่ค่อนข้างง่าย: เปรียบเทียบองค์ประกอบแรกของแต่ละรายการและวางขนาดเล็กลงในรายการใหม่ทำซ้ำ นี่คือพื้นฐานสำหรับการเรียงลำดับการผสาน.

ในการเริ่มเรียงลำดับการผสานรายการจะแบ่งออกเป็นชุด“ รายการ 1 องค์ประกอบ” จากนั้นคู่ของรายการเหล่านี้จะถูกรวมเข้าไปในรายการ 2 องค์ประกอบซึ่งจะถูกรวมเข้าไปในรายการ 4 องค์ประกอบและต่อไปจนกว่ารายการทั้งหมดจะถูกรวมเข้าด้วยกัน.

เมื่อใดจึงควรใช้ผสานเรียงลำดับ

การเรียงลำดับผสานมีประสิทธิภาพมาก ปัญหาเดียวคือการเรียงลำดับการผสานมักจะต้องมีหน่วยความจำที่ใช้งานอยู่ (RAM) เพียงพอเพื่อเก็บรายการสองครั้ง ดังนั้นจึงอาจเป็นไปไม่ได้ในบางสถานการณ์.

ข้อมูลเพิ่มเติมเกี่ยวกับการเรียงลำดับผสาน

  • ผสานเรียงจาก Khan Academy เป็นบทเรียนหกส่วนที่ยอดเยี่ยมโดยมีแบบฝึกหัดการเขียนโปรแกรมรวมอยู่ด้วย
  • ผสานการเรียงเรียงโค้ดในภาษาการเขียนโปรแกรมที่แตกต่างกันกว่า 80 ภาษา
  • ผสานการเรียงกับการเต้นรำพื้นเมืองของเยอรมันให้ขั้นตอนการเต้นแสดงวิธีการเรียงลำดับ.

จัดเรียงด่วน

การจัดเรียงด่วนนั้นไม่ง่ายนัก อย่างไรก็ตามมันมีประสิทธิภาพมาก.

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

ใช้ Quick Sort เมื่อใด

Quick sort เป็นหนึ่งในอัลกอริทึมการเรียงลำดับที่เป็นที่นิยมมากที่สุดสำหรับการใช้งานจริง ความเร็วเฉลี่ยเร็วมาก อย่างไรก็ตามสถานการณ์กรณีที่เลวร้ายที่สุด (ซึ่งไม่ค่อยเกิดขึ้นในชุดข้อมูลธรรมชาติ) กลายเป็นปัญหากับชุดที่มีขนาดใหญ่มาก.

ข้อมูลเพิ่มเติมเกี่ยวกับ Quick Sort

  • Quick เรียงลำดับในกว่า 100 ภาษาการเขียนโปรแกรม;
  • การจัดเรียงอย่างรวดเร็วอธิบายด้วยบล็อคจากคลาส CS-50 ของ Harvard;
  • Quick Sort Tutorial จาก Tutorials Point มีรายละเอียดโค้ดตัวอย่างและภาพเคลื่อนไหวมากมาย.

ทรัพยากรอัลกอริทึมการเรียงลำดับทั่วไป

  • โครงสร้างข้อมูล – เทคนิคการเรียงลำดับเป็นชุดที่มีรายละเอียดมากจากจุดสอน
  • อัลกอริทึมการเรียงลำดับมีการสร้างภาพข้อมูลทุกประเภทภายใต้เงื่อนไขที่แตกต่างกัน – คุณสามารถดูอัลกอริทึมที่ต่างกันแข่งกัน
  • 15 อัลกอริทึมการเรียงลำดับใน 6 นาทีเป็นภาพวิดีโอที่น่าสนใจ;
  • การจัดเรียงวิดีโอคือการสำรวจปัญหาของการเรียงลำดับด้วยคอมพิวเตอร์
  • อัลกอริธึมการเรียงลำดับที่แตกต่างกันเสียงเหมือนเป็นวิดีโอ “ออดิโอ” ที่เหลือเชื่อในการแปลอัลกอริทึมการเรียงลำดับหลาย ๆ อย่างเป็นเสียง.

สรุป

ส่วนใหญ่เวลาเขียนโปรแกรมหากคุณต้องการบางสิ่งบางอย่างเรียงลำดับเล็กน้อย – ค่าสั้น ๆ คอลัมน์ของข้อมูล – คุณเพียงแค่ใช้วิธีการหรือฟังก์ชั่นใด ๆ ก็ตามที่มีอยู่ในภาษาโปรแกรมหรือไลบรารีที่คุณโปรดปราน.

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

การอ่านและทรัพยากรเพิ่มเติม

เรามีคำแนะนำเพิ่มเติมบทแนะนำและอินโฟกราฟิกที่เกี่ยวข้องกับการเข้ารหัสและการพัฒนา:

  • ทรัพยากรสำหรับนักพัฒนา C ++: หนึ่งในภาษาการเขียนโปรแกรมที่ได้รับความนิยมมากที่สุดเหมาะสำหรับการใช้งานส่วนใหญ่.
  • Unicode Introduction and Resources: เรียนรู้ทั้งหมดเกี่ยวกับการเข้ารหัสอักขระ.
  • บทนำและแหล่งข้อมูล MantisBT: MantisBT เป็นหนึ่งในโปรแกรมติดตามบั๊กที่เป็นที่นิยมมากที่สุด.

คุณควรเรียนรู้รหัสใด?

สับสนเกี่ยวกับภาษาการเขียนโปรแกรมใดที่คุณควรเรียนรู้ที่จะใช้รหัส? ตรวจสอบอินโฟกราฟิกของเราคุณควรเรียนรู้รหัสใด ไม่เพียง แต่พูดถึงแง่มุมต่าง ๆ ของภาษาเท่านั้น แต่ยังตอบคำถามสำคัญเช่น“ ฉันจะใช้เงินเป็นจำนวนเท่าใดในการเขียนโปรแกรม Java เพื่อการใช้ชีวิต?”

คุณควรเรียนรู้รหัสใด
คุณควรเรียนรู้รหัสใด?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map