Sorting

1,423 views
1,348 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,423
On SlideShare
0
From Embeds
0
Number of Embeds
354
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sorting

  1. 1. แนวคิด ชีวิตประจําวันเราไดมีการจัดเรียงขอมูลตางๆ มากมาย เชน การ จัดเรียงตัวอักษรในพจนานุกรม การจัดเรียงลําดับรายชื่อนักเรียนที่มี ุ คะแนนสูงสุดไปต่ําสุด เปนตน หากมีขอมูลมากๆ แลวไมทําการ เรยงขอมูลกจะทาใหเสยเวลาในการคนหาขอมูลเปนอยางมาก เรียงขอมลก็จะทําใหเสียเวลาในการคนหาขอมลเปนอยางมาก
  2. 2. การเรียงลําดับขอมูล 1. การเรียงลําดับขอมูลภายใน (Internal Sorting) เปนการเรียงลําดับ ขอมูลที่ขอมูลทั้งหลายเก็บอยูในหนวยความจําหลัก ซึ่งจํานวนขอมูลมักจะมี ขนาดนอยกวาขนาดของพื้นที่หนวยความจํา 2. การเรียงลําดับขอมูลภายนอก (External Sorting) เปนการเรียงลําดับ ขอมููลที่ขอมููลทั้งหลายถููกเก็บไวในหนวยความจําสํารอง
  3. 3. อัลกอริทึมในการเรียงขอมูล อัลกอริทึมมีดวยกันหลายอัลกอริทึม แตละอันก็เหมาะสมกับลักษณะของ ปญหาที่แตกตางกันไป ตองพิจารณาถึงพื้นที่ประหยัดหรือไม เวลามากนอย จํานวนขอมูลมีมากเกินไปหรือไม
  4. 4. อัลกอริทึม 1. การเรียงขอมูลแบบฟอง (Bubble Sort) 2. การเรียงขอมูลแบบแทรก (Insertion Sort) 3. การเรียงขอมลแบบเลือก (Selection Sort) การเรยงขอมูลแบบเลอก 4. การเรียงขอมูลแบบผสาน (Merge Sort) 5. การเรียงแบบเร็ว (Quick Sort)
  5. 5. 1. การเรียงขอมูลแบบฟอง (Bubble Sort) เปนการเรียงแบบงายๆ เปนแบบหนึ่งในการเรียงลําดับที่เปน ๆ Exchange sort ใชหลักการเปรียบเทียบคา 2 คาที่ติดกัน ถาทั้ง 2 ไมอยในลําดับที่ตองการใหทําการแลกเปลียนคากันระหวาง 2 ไมอยู นลาดบทตองการใหทาการแลกเปลยนคากนระหวาง ่ ตําแหนง จากนั้นเปรียบเทียบคูถัดไป
  6. 6. ตัวอยาง การเรียงลําดับขอมูลแบบ Bubble Sort ในอารเรยทีมีขอมูล 7 22 6 17 20 จาก ํ ั  ใ   ่ มากไปหานอย รอบทีี่ 1 7 22 6 17 20 22 7 6 17 20 22 7 17 6 20 22 7 17 20 6
  7. 7. ตัวอยาง การเรียงลําดับขอมูลแบบ Bubble Sort ในอารเรยทีมีขอมูล 7 22 6 17 20 จาก ํ ั  ใ   ่ มากไปหานอย รอบทีี่ 2 22 7 17 20 6 22 17 7 20 6 22 17 20 7 6
  8. 8. ตัวอยาง การเรียงลําดับขอมูลแบบ Bubble Sort ในอารเรยทีมีขอมูล 7 22 6 17 20 จาก ํ ั  ใ   ่ มากไปหานอย รอบทีี่ 3 22 17 20 7 6 22 20 17 7 6
  9. 9. 2. การเรียงลําดับแบบแทรก (Insertion Sort) เปนเทคนิคที่ใชในชีวิตประจาวัน เปรียบเทียบกับการเลนไพ ทุกครั้งที่หยิบ ํ ไพจะหาตาแหนงทเหมาะสมเพอแทรกลงไป โดยพจารณาขอมูลตาแหนงท ไพจะหาตําแหนงที่เหมาะสมเพื่อแทรกลงไป โดยพิจารณาขอมลตําแหนงที่ i (i= 2,3,4,…n) ถามีคานอยกวาขอมูลที่อยูกอนหนานี้ ใหนาขอมูลตําแหนง ํ ท ไปแทรกในตาแหนงทถูกตอง ที่ i ไปแทรกในตําแหนงที่ถกตอง
  10. 10. ตัวอยาง ใหเรียงลําดับขอมูลตัวเลข 27, 36, 58, 42, 96, 7, 12, 23, 101, 33 แบบ Insertion Sort โดยเรียงจากนอยไปหามาก 27 36 58 42 96 7 12 23 101 33เปรียบเทียบ 27 กับ 36 ไมมีการแทรก จะได 27 36 58 42 96 7 12 23 101 33เปรียบเทียบ 36 กับ 58 ไมมีการแทรก จะได 27 36 58 42 96 7 12 23 101 33เปรียบเทียบ 58 กับ 42 42 จะไปแทรกกอนหนา 58 จะได
  11. 11. ตัวอยาง ใหเรียงลําดับขอมูลตัวเลข 27, 36, 58, 42, 96, 7, 12, 23, 101, 33 แบบ Insertion Sort โดยเรียงจากนอยไปหามาก 27 36 42 58 96 7 12 23 101 33เปรียบเทียบ 58 กับ 96 ไมมีการแทรก จะได 27 36 42 58 96 7 12 23 101 33เปรียบเทียบ 96 กับ 7 7 จะไปแทรกกอนหนา 27 จะได 7 27 36 42 58 96 12 23 101 33เปรียบเทียบ 96 กับ 12 12 จะไปแทรกกอนหนา 27 จะได
  12. 12. ตัวอยาง ใหเรียงลําดับขอมูลตัวเลข 27, 36, 58, 42, 96, 7, 12, 23, 101, 33 แบบ Insertion Sort โดยเรียงจากนอยไปหามาก 7 12 27 36 42 58 96 23 101 33เปรียบเทียบ 96 กับ 23 23 จะไปแทรกกอนหนา 27 จะได 7 12 23 27 36 42 58 96 101 33เปรียบเทียบ 96 กับ 101 23 ไมมการแทรก จะได ี 7 12 23 27 36 42 58 96 101 33เปรียบเทียบ 101 กับ 33 33 จะไปแทรกกอนหนา 36 จะได7 12 23 27 33 36 42 58 96 101
  13. 13. 3. การเรียงขอมูลแบบเลือก (Selection Sort) เปนวิธีที่งายที่สด การเรียงลําดับจะเริ่มจากตําแหนงของขอมูลที่มีคานอย ุ ที่สุดหรือ มากที่สุด แลวสลับกับตําแหนงของขอมูลตัวแรก ตอจากนั้นหา ตําแหนงของขอมูลที่คานอยที่สุดหรือมากที่สุดของขอมูลที่เหลือ แลวสลับ ขอมูลตัวนั้น ใหทําไปเรื่อยๆ จนหมดขอมูล
  14. 14. ตัวอยาง เรียงลําดับขอมูลตัวเลข 15,36,72,25,86,45,7,64,101,96 แบบ Selection Sort โดยเรียงลําดับจากนอยไปหามาก15 36 72 25 86 45 7 64 101 96สลับ 7 กับ 15 จะได7 36 72 25 86 45 15 64 101 96สลบ กบ จะไดสลับ 15 กับ 36 จะได7 15 72 25 86 45 36 64 101 96สลบ กบ จะไดสลับ 72 กับ 15 จะได
  15. 15. ตัวอยาง เรียงลําดับขอมูลตัวเลข 15,36,72,25,86,45,7,64,101,96 แบบ Selection Sort โดยเรียงลําดับจากนอยไปหามาก7 15 72 25 86 45 36 64 101 96สลับ 72 กับ 15 จะได7 15 25 72 86 45 36 64 101 96สลับ 36 กับ 72 จะได7 15 25 36 86 45 72 64 101 96สลบ กบ จะไดสลับ 45 กับ 86 จะได
  16. 16. ตัวอยาง เรียงลําดับขอมูลตัวเลข 15,36,72,25,86,45,7,64,101,96 แบบ Selection Sort โดยเรียงลําดับจากนอยไปหามาก7 15 25 36 45 86 72 64 101 96สลับ 86 กับ 64 จะได7 15 25 36 45 64 72 86 101 96สลับ 96 กับ 101 จะได7 15 25 36 45 64 72 86 96 101
  17. 17. 4. การเรียงขอมูลแบบผสาน (Merge Sort) เปนวิธีการเรียงขอมูลที่มีความสําคัญมาก เพราะเปนวิธีสําคัญในการเรียง ขอมูลขนาดใหญ มี 2 วิธี 1. การเรียงแบบภายนอก (External Sort) 2. การเรยงแบบภายใน 2 การเรียงแบบภายใน (Internal Sort)
  18. 18. 1. การเรียงแบบภายนอก (External Sort)
  19. 19. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9เริ่มตนชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge
  20. 20. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 1ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1
  21. 21. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 2ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2
  22. 22. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 3ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2 3
  23. 23. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 4ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2 3 4
  24. 24. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 5ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2 3 4 5
  25. 25. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 6ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2 3 4 5 6
  26. 26. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 7ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2 3 4 5 6 7
  27. 27. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 8ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2 3 4 5 6 7 8
  28. 28. 2. การเรียงแบบภายใน (Internal Sort) การเรียงลําดับขอมูลในอเรยที่มีขอมูล 2 ชุด จากนอยไปหามากชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9รอบที่ 9ชุดที่ 1 = 1 3 4 7 ชุดที่ 2 = 2 5 6 8 9 Merge 1 2 3 4 5 6 7 8 9
  29. 29. 5. การเรียงแบบเร็ว (Quick Sort) เปนการจัดเรียงลําดับที่ใชเวลานอยที่สุด เหมาะสําหรับการเรียงลําดับที่มี จํานวนขอมููลมากๆ วิธการเรียงลําดับเริ่มตนโดยการเลือกขอมููล 1 คา เพื่อ ๆ ี ใชเปรียบเทียบในการที่จะแบงขอมูลออกเปนสองสวน และขอมูลที่เลือก ขึ้นมาจะอยููตรงกลางระหวางขอมููล 2 สวน จากนั้นใหนําขอมููล แตละสวน ไปแบงเปนสวนยอยในวิธีแบบเดียวกัน
  30. 30. ตัวอยาง จงเรียงลําดับขอมูล 28,34, 76, 48, 96, 52, 64, 85, 17, 82 โดยวิธี Quick Sort โดยเรียงลําดับจากนอยไปหามาก28 34 76 48 96 52 64 85 17 82เลือก 28 แลวพิจารณา ตัวนอยสุดของขอมููล คือ 17 สลับขอมููล จะได ุ17 34 76 48 96 52 64 85 (28) 82พจารณาพิจารณา 34 กับ (28) สลับขอมล จะได กบ สลบขอมูล จะได17 (28) 76 48 96 52 64 85 34 82
  31. 31. ตัวอยาง จงเรียงลําดับขอมูล 28,34, 76, 48, 96, 52, 64, 85, 17, 82 โดยวิธี Quick Sort โดยเรียงลําดับจากนอยไปหามากแบงขอมูลออกเปน 2 สวน17 (28) 76 48 96 52 64 85 34 8276 48 96 52 64 85 34 82เลอกเลือก 76 แลวพิจารณา ตัวนอยสดของขอมล คอ 34 สลับขอมล จะได แลวพจารณา ตวนอยสุดของขอมูล คือ สลบขอมูล จะได34 48 96 52 64 85 (76) 82พิิจารณา 48 กับ (76) ซึ่ง 48 นอยกวา 76 ไมตองสลับ
  32. 32. ตัวอยาง จงเรียงลําดับขอมูล 28,34, 76, 48, 96, 52, 64, 85, 17, 82 โดยวิธี Quick Sort โดยเรียงลําดับจากนอยไปหามาก34 48 96 52 64 85 (76) 82พิจารณาลําดับถัดไป 96 กับ (76) สลับ จะได34 48 (76) 52 64 85 96 82พจารณาลาดบถดไปพิจารณาลําดับถัดไป 52 กับ (76) ทําการสลับ จะได กบ ทาการสลบ จะได34 48 52 (76) 64 85 96 82
  33. 33. ตัวอยาง จงเรียงลําดับขอมูล 28,34, 76, 48, 96, 52, 64, 85, 17, 82 โดยวิธี Quick Sort โดยเรียงลําดับจากนอยไปหามาก34 48 52 (76) 64 85 96 82พิจารณาลําดับถัดไป 64 กับ (76) ทําการสลับ จะได34 48 52 64 (76) 85 96 82แบงขอมูลเปน สวนแบงขอมลเปน 2 สวน34 48 52 64 (76) 85 96 82
  34. 34. ตัวอยาง จงเรียงลําดับขอมูล 28,34, 76, 48, 96, 52, 64, 85, 17, 82 โดยวิธี Quick Sort โดยเรียงลําดับจากนอยไปหามากแบงขอมูลเปน 2 สวน34 48 52 64 (76) 85 96 8285 96 82เลอกเลือก 85 แลวพิจารณา ตัวนอยสดของขอมล คอ 82 สลับขอมล จะได แลวพจารณา ตวนอยสุดของขอมูล คือ สลบขอมูล จะได82 96 (85)
  35. 35. ตัวอยาง จงเรียงลําดับขอมูล 28,34, 76, 48, 96, 52, 64, 85, 17, 82 โดยวิธี Quick Sort โดยเรียงลําดับจากนอยไปหามาก82 96 (85)พิจารณา 96 กับ (85) ทําการสลับจะได82 (85) 96ผลลพธทไดผลลัพธที่ได17 28 34 48 52 64 76 82 85 96
  36. 36. สรุป Sorting เปนอัลกอริทึมที่ตองการเก็บรักษาและคนหาขอมูล ทําใหเราตอง มีการจัดเก็บขอมูลอยางมีระเบียบแบบแผน ตัวอยาง งานบรรณารักษที่มี หนาที่ดูแลหองสมุด ตองมีการจัดการรายละเอียดขอมูลของหนังสือตางๆ ใหเปนแบบขอมูลที่เรียงลําดับตามตัวอักษร

×