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


