ผลต่างระหว่างรุ่นของ "การเรียงลำดับแบบฟอง"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Phizaz (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
Phizaz (คุย | ส่วนร่วม)
บรรทัด 50:
end if
end for
until ไม่มีการสลับแล้ว
end
</source>
 
===การปรับปรุงประสิทธิภาพ===
ในการทำงานเสร็จหนึ่งรอบจะทำให้ค่าที่มากที่สุดลำดับที่ i ไปอยู่ในตำแหน่งที่ n-1 ดังนั้นจึงสามารถมองข้ามตำแหน่งที่ n ในการทำงานรอบต่อไปได้
<source lang="pascal">
begin bubbleSort ( A คือ แถวลำดับที่จะถูกเรียง )
n = ขนาดของ(A)
do
ทำเครื่องหมายว่ายังไม่มีการสลับ
for i = 1 to n-1
if A[i-1] > A[i] then
สลับ A[i-1] กับ A[i]
ทำเครื่องหมายว่ามีการสลับแล้ว
end if
end for
n = n - 1
until ไม่มีการสลับแล้ว
end