บทความนี้กล่าวถึงวิธีง่ายๆ ในการใช้ Bubble Sort ในการเขียนโปรแกรมภาษา C
Bubble-Sort ในการเขียนโปรแกรม C คืออะไร?
ใน เรียงฟอง องค์ประกอบต่างๆ จะถูกจัดเรียงตามลำดับซ้ำๆ ไม่ว่าจะเป็นจากน้อยไปมากหรือมากไปน้อย ขึ้นอยู่กับความชอบของผู้ใช้ กระบวนการเรียงลำดับในภาษาซีเริ่มต้นด้วยการค้นหาดัชนีตัวแรกและเปรียบเทียบองค์ประกอบตัวที่หนึ่งและตัวที่สอง หากองค์ประกอบดัชนีแรกมากกว่าองค์ประกอบที่สอง จะถูกสลับ กระบวนการเปรียบเทียบและการแลกเปลี่ยนแบบเดียวกันจะเกิดขึ้นซ้ำสำหรับองค์ประกอบดัชนีที่สองและองค์ประกอบที่สาม จนกว่าองค์ประกอบทั้งหมดจะถูกจัดเรียง
Bubble Sorts ทำงานอย่างไร
นี่คือคำแนะนำทีละขั้นตอนในการดำเนินการ เรียงฟอง ในซี
ลองพิจารณาอินพุตอาร์เรย์ {5, 3, 1, 4, 6} . ในการจัดเรียงอาร์เรย์นี้โดยใช้ เรียงฟอง เราปฏิบัติตามผ่านด้านล่าง:
ผ่านครั้งแรก:
(5 3 1 4 6) -> (3 5 1 4 6), สลับตั้งแต่ 5 > 3
(3 5 1 4 6) -> (3 1 5 4 6), สลับตั้งแต่ 5 > 1
(3 1 5 4 6) -> (3 1 4 5 6), สลับตั้งแต่ 5 > 4
(3 1 4 5 6) -> (3 1 4 5 6), ไม่มีการสลับเนื่องจากองค์ประกอบทั้งหมดอยู่ในลำดับ
รอบที่สอง:
(3 1 4 5 6) -> (1 3 4 5 6), สลับตั้งแต่ 3 > 1
(1 3 4 5 6) -> (1 3 4 5 6), ไม่มีการสลับเนื่องจากองค์ประกอบทั้งหมดอยู่ในลำดับ
ผ่านที่สาม:
(1 3 4 5 6) -> (1 3 4 5 6), ไม่มีการสลับเนื่องจากองค์ประกอบทั้งหมดอยู่ในลำดับ
อาร์เรย์ถูกจัดเรียง และอัลกอริทึมจะจดจำสิ่งนี้หลังจากการผ่านครั้งที่สามเนื่องจากไม่มีการสลับ
โปรแกรม Bubble Sort ใน C
ต่อไปนี้เป็นการดำเนินการของ เรียงฟอง ในการเขียนโปรแกรมภาษาซี
#รวมนานาชาติ หลัก ( ) {
นานาชาติ อาร์เรย์ [ 100 ] , น , x , และ , ส ;
พิมพ์ฉ ( 'กรุณาป้อนจำนวนองค์ประกอบอาร์เรย์: ' ) ;
สแกน ( '%d' , & น ) ;
พิมพ์ฉ ( 'กรุณาป้อนค่าองค์ประกอบ: ' ) ;
สำหรับ ( x = 0 ; x < น ; x ++ )
สแกน ( '%d' , & อาร์เรย์ [ x ] ) ;
สำหรับ ( x = 0 ; x < น - 1 ; x ++ ) {
สำหรับ ( และ = 0 ; และ < น - x - 1 ; และ ++ ) {
ถ้า ( อาร์เรย์ [ และ ] > อาร์เรย์ [ และ + 1 ] ) {
ส = อาร์เรย์ [ และ ] ;
อาร์เรย์ [ และ ] = อาร์เรย์ [ และ + 1 ] ;
อาร์เรย์ [ และ + 1 ] = ส ; }
}
}
พิมพ์ฉ ( 'อาร์เรย์ที่เรียงลำดับหลังจากใช้การเรียงลำดับแบบฟอง: ' ) ;
สำหรับ ( x = 0 ; x < น ; x ++ )
{
พิมพ์ฉ ( '%d' , อาร์เรย์ [ x ] ) ;
}
กลับ 0 ;
}
โปรแกรม C ข้างต้นจะเริ่มต้นอาร์เรย์ที่มีขนาด 100 อิลิเมนต์ก่อน และขอให้ผู้ใช้ป้อนขนาดของอิลิเมนต์ที่ต้องการจัดเรียง จากนั้นจึงป้อนอิลิเมนต์จากผู้ใช้ทีละตัว ค่าที่ป้อนในอาร์เรย์จะถูกจัดเรียงโดยใช้ลูปที่ซ้อนกัน เนื่องจากโค้ดจะสลับองค์ประกอบหากค่าเหล่านั้นอยู่ในลำดับที่ไม่ถูกต้อง สุดท้ายจะพิมพ์อาร์เรย์ที่เรียงลำดับโดยใช้สำหรับการวนซ้ำ
เอาต์พุต
บทสรุป
เรียงฟอง เป็นอัลกอริทึมการเรียงลำดับที่ใช้ในการจัดเรียงอาร์เรย์จากน้อยไปมากหรือจากมากไปน้อยโดยการเปรียบเทียบแต่ละองค์ประกอบของอาร์เรย์กับองค์ประกอบที่อยู่ติดกันและจับคู่จนกระทั่งองค์ประกอบสุดท้ายถูกจัดเรียง ในแนวทางที่กล่าวถึงข้างต้น คุณจะได้เรียนรู้พื้นฐานของ เรียงฟอง อัลกอริทึมและการนำไปใช้ในการเขียนโปรแกรมภาษาซี