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

จากวิกิพีเดีย สารานุกรมเสรี
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Wacharadarj Thungjun (คุย | ส่วนร่วม)
บรรทัด 11: บรรทัด 11:
| optimal = No
| optimal = No
}}
}}
ในสาขา[[วิทยาการคอมพิวเตอร์]] '''การเรียงลำดับแบบแทรก''' ({{lang-en|insertion sort}}) เป็น[[ขั้นตอนวิธี]]
ในสาขา[[วิทยาการคอมพิวเตอร์]] '''การเรียงลำดับแบบแทรก''' ({{lang-en|insertion sort}}) เป็น[[ขั้นตอนวิธี]]การเรียงลำดับอย่างง่าย ทำงานโดยจะแบ่งข้อมูลในรายการเป็นสองส่วนคือส่วนที่เรียงแล้วและส่วนที่ยังไม่เรียง แน่นอนว่าในตอนเร่มแรกส่วนที่เรียงแล้วก็จะมีอย่างน้อยหนึ่งตัว และจะเริ่มหยิบข้อมูลตัวหนึ่งของส่วนที่ยังไม่เรียงมาเปรียบเทียบเพื่อหาตำแหน่งที่เหมาะสมในการแทรกลงในข้อมูลส่วนที่เรียงแล้ว ลักษณะเดียวกับการเรียงไพ่ในมือ และด้วยประสิทธิภาพ ''O(n<sup>2</sup>) '' ดังนั้นการเรียงลำดับแบบแทรกจึงไม่เหมาะในการทำงานในรายการที่มีจำนวนสมาชิกมากๆ ซึ่งขั้นตอนวิธีการเรียงลำดับซึ่งซับซ้อนกว่าเช่น [[การเรียงลำดับแบบเร็ว]], [[การเรียงลำดับแบบผสาน]], [[การเรียงลำดับแบบฮีป]] มีความเหมาะสมมากกว่า


การเรียงลำดับอย่างง่าย ทำงานโดยจะแบ่งข้อมูลในรายการเป็นสองส่วนคือส่วนที่เรียงแ
== ขั้นตอนวิธี ==
=== ตัวอย่างทีละขั้นตอน4 ===
การเรียงลำดับข้อมูลในรายการดังนี้ 3 9 8 6 7 ด้วยขั้นตอนวิธีแบบแทรก เริ่มต้นด้วยข้อมูลทุกตัวยกเว้นตัวแรกยังไม่ได้เรียง ข้อมูลที่อยู่ในเครื่องหมาย (..) ถือว่าเป็นข้อมูลที่เรียงจากน้อยไปมากแล้ว<br />
'''ครั้งที่ 1'''<br>
[ (3) '''9''' 8 7 6 ] <math>\to</math> [ (3 '''9''') 8 7 6 ]<br>
'''ครั้งที่ 2'''<br>
[ (3 9) '''8''' 7 6 ] <math>\to</math> [ (3 9 '''8''') 7 6 ]<br>
[ (3 9 '''8''') 7 6 ] <math>\to</math> [ (3 '''8''' 9) 7 6 ]<br>
'''ครั้งที่ 3'''<br>
[ (3 8 9) '''7''' 6 ] <math>\to</math> [ (3 8 9 '''7''') 6 ]<br>
[ (3 8 9 '''7''') 6 ] <math>\to</math> [ (3 8 '''7''' 9) 6 ]<br>
[ (3 8 '''7''' 9) 6 ] <math>\to</math> [ (3 '''7''' 8 9) 6 ]<br>
'''ครั้งที่ 4'''<br>
[ (3 7 8 9) '''6''' ] <math>\to</math> [ (3 7 8 9 '''6''') ]<br>
[ (3 7 8 9 '''6''') ] <math>\to</math> [ (3 7 8 '''6''' 9) ]<br>
[ (3 7 8 '''6''' 9) ] <math>\to</math> [ (3 7 '''6''' 8 9) ]<br>
[ (3 7 '''6''' 8 9) ] <math>\to</math> [ (3 '''6''' 7 8 9) ]<br>
เรียงเสร็จเรียบร้อย<br>

=== ตัวอย่างรหัสเทียม ===
<source lang="pascal">
begin insertionSort ( A : list of sortable items )
for i = 1 to length (A) - 1
item = A[i]
cmpPos = i - 1
while cmpPos >= 0 and item < A[cmpPos]
A[cmpPos + 1] = A[cmpPos]
cmpPos = cmpPos - 1
end while
A[cmpPos + 1] = item
end for
end
</source>


[[หมวดหมู่:ขั้นตอนวิธีการเรียงลำดับ]]
[[หมวดหมู่:ขั้นตอนวิธีการเรียงลำดับ]]

รุ่นแก้ไขเมื่อ 16:23, 22 มกราคม 2562

การเรียงลำดับแบบแทรก
ตัวอย่างการเรียงลำดับแบบแทรกจากข้อมูลสุ่ม
ประเภทขั้นตอนวิธีการเรียงลำดับ
โครงสร้างข้อมูลรายการ
ประสิทธิภาพเมื่อเกิดกรณีแย่ที่สุด
ประสิทธิภาพเมื่อเกิดกรณีดีที่สุด
ประสิทธิภาพเมื่อเกิดกรณีทั่วไป
ปริมาณความต้องการพื้นที่เมื่อเกิดกรณีแย่ที่สุดใช้พื่นที่ เพิ่มเติม

ในสาขาวิทยาการคอมพิวเตอร์ การเรียงลำดับแบบแทรก (อังกฤษ: insertion sort) เป็นขั้นตอนวิธี

การเรียงลำดับอย่างง่าย ทำงานโดยจะแบ่งข้อมูลในรายการเป็นสองส่วนคือส่วนที่เรียงแ