1. การเรียงลำดับฟอง
แนวคิดอัลกอริทึม: สำรวจอาร์เรย์ที่จะจัดเรียงและเปรียบเทียบองค์ประกอบที่อยู่ติดกันสององค์ประกอบในแต่ละครั้ง หากคำสั่งการจัดการของพวกเขาไม่ถูกต้องให้แลกเปลี่ยนตำแหน่งของพวกเขา หลังจากการเดินทางไปเรียงลำดับองค์ประกอบที่ใหญ่ที่สุดจะลอยไปที่จุดสิ้นสุดของอาร์เรย์ ทำซ้ำจนกว่าการเรียงลำดับจะเสร็จสมบูรณ์
การสาธิตตัวอย่าง:
การใช้อัลกอริทึม:
สำหรับ (int i = 0; i <array.length-1; i ++) {// เรียงลำดับ n-1 ครั้งมากที่สุดสำหรับ (int j = 0; j <array.length-i-1; j ++) {// จำนวนครั้งที่ต้องแลกเปลี่ยนถ้า (array [j]> array [j+1]) อาร์เรย์ [j] = อาร์เรย์ [j+1]; อาร์เรย์ [j+1] = อุณหภูมิ; -ความซับซ้อนของเวลาอัลกอริทึม: O (N2) ต้องเปรียบเทียบลูปด้านนอกของ N-1 และต้องเปรียบเทียบลูปภายใน
2. เลือกการเรียงลำดับ
แนวคิดอัลกอริทึม: เลือกองค์ประกอบที่เล็กที่สุดในอาร์เรย์เพื่อจัดเรียงและแลกเปลี่ยนกับองค์ประกอบที่ตำแหน่งแรกของอาร์เรย์ จากนั้นเลือกองค์ประกอบที่เล็กที่สุดจากองค์ประกอบที่เหลือและแลกเปลี่ยนกับองค์ประกอบในตำแหน่งที่สอง หากองค์ประกอบที่เล็กที่สุดคือองค์ประกอบในตำแหน่งนั้นให้แลกเปลี่ยนกับตัวเองและอื่น ๆ จนกว่าการเรียงลำดับจะเสร็จสมบูรณ์
การสาธิตตัวอย่าง:
การใช้อัลกอริทึม:
สำหรับ (int i = 0; i <array.length; i ++) {int min = i; สำหรับ (int j = i+1; j <array.length; j ++) {if (array [j] <array [min]) {min = j; }} int temp = array [min]; อาร์เรย์ [min] = อาร์เรย์ [i]; อาร์เรย์ [i] = อุณหภูมิ; - ความซับซ้อนของเวลา: O (N2) ต้องการการเปรียบเทียบ N2/2 และการแลกเปลี่ยน N
3. แทรกการเรียงลำดับ
ความคิดอัลกอริทึม: เริ่มการสำรวจจากองค์ประกอบที่สองของอาร์เรย์เปรียบเทียบองค์ประกอบกับองค์ประกอบก่อนหน้าหากองค์ประกอบมีขนาดเล็กกว่าองค์ประกอบก่อนหน้านี้ให้บันทึกองค์ประกอบลงในตัวแปรชั่วคราวให้เลื่อนองค์ประกอบก่อนหน้าไปด้านหลังแล้วแทรกองค์ประกอบลงในตำแหน่งที่เหมาะสม หลังจากการเรียงลำดับแต่ละครั้งเสร็จสิ้นองค์ประกอบทางด้านซ้ายของดัชนีจะต้องสั่งซื้อ แต่ยังสามารถย้ายได้ สำหรับอาร์เรย์ที่มีการผกผันน้อยลงยิ่งอัลกอริทึมมีประสิทธิภาพมากขึ้นเท่านั้น
หมายเหตุ: คว่ำ: 5 3 6 2 คำพลีบคือ 5-3 5-2 3-2 6-2
การสาธิตตัวอย่าง:
การใช้อัลกอริทึม:
สำหรับ (int i = 1; i <array.length; i ++) {สำหรับ (int j = i; j> 0 && array [j] <array [j-1]; j-) {int temp = array [j]; Array [J] = Array [J-1]; อาร์เรย์ [j-1] = อุณหภูมิ; -ความซับซ้อนของเวลา: O (N2) กรณีที่เลวร้ายที่สุด N2/2 การเปรียบเทียบ, N2/2 Exchange กรณีที่ดีที่สุด N-1 การเปรียบเทียบ, 0 การแลกเปลี่ยน
อัลกอริทึมการเรียงลำดับง่าย ๆ สามแบบข้างต้น (นำไปใช้โดยใช้ Java) เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น