SlideShare a Scribd company logo
1 of 30
นาย ศีลวัฒน์ วิศวะโยธานันท์ Mc ปี2 No.5704022611175
นาย อนุรักษ์ สุดจอม MC ปี2 No.5704022611124
นาย เอกอังกุล ต่อพล Mc ปี2 No.5704022611183
นาย อริสรา จันทร์อาพร Mc ปี2 No.5704022630374
รายชื่อสมาชิก
Sorting คือ?
Sorting ในชีวิตประจาวันเราได้มีการจัดเรียงข้อมูลต่างๆ ซึ่งเราจะข้อมูลนั้นไปใช้ในการกระทาอย่าง
อื่น ในคอมพิวเตอร์ก็เช่นเดียวกัน ถ้าหากมีข้อมูลมาก ๆ แล้วไม่ทาการเรียงข้อมูล ก็จะทาให้เสียเวลาในการ
ค้นหาข้อมูลเป็นอย่างมาก เราจึงต้องมีการเรียงข้อมูลกันก่อนที่จะดึงข้อมูลมาใช้ เพื่อจะได้สะดวกในการเขียน
โปรแกรม การค้นหาข้อมูล และเสียเวลาน้อยลง การเรียงข้อมูลจะแบ่งเป็น 2 ลักษณะใหญ่ ๆ
การเรียงข้อมูลภายใน ( Internal sorting )
เป็นการเรียงลาดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจาหลัก เวลาที่ใช้ในการเรียงลาดับจะคานึงถึงเวลาที่ใช้ใน
การเปรียบเทียบและเลื่อนข้อมูลภายในความจาหลัก
การเรียงข้อมูลภายนอก ( External sorting )
เป็นการเรียงลาดับข้อมูลที่เก็บอยู่ในหน่วยความจาสารอง ซึ่งเป็นการเรียงลาดับข้อมูลในแฟ้มข้อมูล (file) เวลาที่
ใช้ในการเรียงลาดับต้องคานึงถึงเวลาที่เสียไประหว่างการถ่ายเทข้อมูลจากหน่วยความจาหลักและหน่วยความจาสารอง
นอกเหนือจากเวลาที่ใช้ในการเรียงลาดับข้อมูลแบบภายใน
การจัดเรียงลาดับแบ่งเป็น 2 ประเภทใหญ่ๆคือ
ชื่อใช้เรียก รูปแบบSorting เวลาการทางาน
เลือก Selection sort Θ(𝑛2
)
ฟอง Bubble sort O(𝑛2)
แทรก Insertion sort O(𝑛2)
เชลล์ Shell sort O(𝑛1.𝑥𝑥)
ฮีป Heap sort O(𝑛 log 𝑛)
ผสาน Merge sort O(𝑛 log 𝑛)
เร็ว Quick sort O(𝑛 log 𝑛) avg.
รูปแบบการเรียงแบบต่างๆ
ประเภทการจัดเรียง
Internal sorting
Internal sorting
Internal sorting
Internal sorting
External sorting
External sorting
Internal sorting
Merge Sort
วิธีการเรียงแบบผสาน
Merge Sort
+Merge Sort คือหนึ่งในวิธีการจัดเรียงแบบภายนอก(External Sorting)
+โดยการทางานจะทาแบบแยกข้อมูลออกมาย่อยๆ และรวมข้อมูลใหม่
+การทางานจะมีเวลาคงตัวไม่ว่าจะกรณีดีสุดหรือแย่สุด
รูปแบบการทางานของ Merge Sort
• หลักการทางานทั่วไป หรือการ Merge
1.ทาการแบ่งข้อมูลในlistหลักออกมาสองส่วนหรือถ้ามีข้อมูลสองส่วนอยู่แล้ว
2.เรียงข้อมูลในlistในสองส่วนนั้น
3.สร้างlistใหม่เพื่อเก็บlistย่อย
4.Merge list ย่อยโดยมีหลักการดังนี้ นาตัวน้อยสุดของทั้งสองlistมาเปรียบเทียบกันโดยถ้าlistใดมี
ค่าน้อยกว่าให้นาค่านั้นมาใส่ใน list ใหม่ และเลื่อนลาดับไปตัวที่มีค่าถัดไป
5.ถ้ามีlistใดที่ไม่สามารถเลื่อนได้แล้วหรือก็คือใช่ข้อมูลหมดแล้วให้นาข้อมูลอีกlistหนึ่งที่เหลืออยู่มาใส่ใน
listใหม่ได้เลย
25 20 15 35 2 18 40
2 18 4025 20 15 35
ทาการแบ่ง
ข้อมูล
จัดเรียงข้อมูล
ภายใน
การดาเนินงานพื้นฐานของ Merge
15 20 25 35 2 18 40
ทาการเปรียบเทียบ
และใส่ในข้อมูลชุด
ใหม่
15 > 215 < 1820 > 1820 < 4025 < 4035 < 40
2 15 18 20 25 35 40
รูปแบบการทางานของ Merge Sort
• แบบโปรแกรม
-คือการทางานของโปรแกรม Merge Sort วิธีการทางาน โดยจะแบ่งเป็นสองช่วงคือ
+ การแบ่งข้อมูล (Distribution Phase)
+ จะทาการแบ่งข้อมูลออกเป็นสองส่วนย่อยๆไปเรื่อยจนกว่าจะแบ่งไม่ได้แล้วจึงหยุด
+ การผสานรวมข้อมูลย่อย(Merge Phase)
+ จะทาการนาข้อมูลย่อยมาจับคู่และ Merge กัน
+ จะทาการ Merge ไปเรื่อยจนข้อมูลย่อยทั้งหมดรวมกัน
+ นาข้อมูลที่ได้ใส่ใน list ใหม่
วิธีการทางาน Merge Sort
10 9 15 7 1 14 12
การแบ่งข้อมูล
ออกเป็นส่วนๆ
Distribution
Phase
วิธีการทางาน Merge Sort
การแบ่งข้อมูล
ออกเป็นส่วนๆ
Distribution
Phase10 9 15 7 1 14 12
วิธีการทางาน Merge Sort
การแบ่งข้อมูล
ออกเป็นส่วนๆ
Distribution
Phase
10 9 15 7 1 14 12
วิธีการทางาน Merge Sort
การแบ่งข้อมูล
ออกเป็นส่วนๆ
Distribution
Phase
1210 9 15 7 1 14
วิธีการทางาน Merge Sort
10 9 15 7 1 14 12
10 9 15 7 1 14 12
10 9 15 7 1 14 12
10 9 15 7 1 14 12
การแบ่งข้อมูล
ออกเป็นส่วนๆ
Distribution
Phase
วิธีการทางาน Merge Sort
10 9 15 7 1 14 12
จัดข้อมูลย่อยมาเรียง Merge Phase
9 10 7 15 1 14
10 > 9 15 > 7 1 < 14
วิธีการทางาน Merge Sortจัดข้อมูลย่อยมาเรียง Merge Phase
9 10 7 15 1 14
12
7 9 10 15 1 12 14
วิธีการทางาน Merge Sortจัดข้อมูลย่อยมาเรียง
7 9 10 15 1 12 14
Merge Phase
1 7 9 10 12 14 15
วิธีการทางาน Merge Sort
10 9 15 7 1 14 12
จัดข้อมูลย่อยมาเรียง
9 7 10 15 1 12 14
1 7 9 10 12 14 15
Merge Phase
9 10 7 15 1 14
วิธีการทางาน Merge Sort
Merge Phase
Distribution Phase
วิธีการทางาน Merge Sort
Code Merge Sort :Pythons
ผลรันจาก Code Merge Sort :Pythons
เวลาทางานใน Merge Sort
ให้ T(n) คือจานวนครั้งของการเปรียบเทียบ
เพื่อเรียงลาดับข้อมูล n ตัว
T(n/2) + T(n/2) ‘เนื่องจากแบ่งมาสองตัว’
เวลาทางานใน Merge Sort
+ ถ้ามีสมาชิกตัวเดียวจะเห็นได้ชัดว่าเวลาที่ใช้นั้นคงที่ (ให้เป็น 1 ได้)
+ ถ้ามีสมาชิกหลายตัว เวลาทีใช้จะเท่ากับเวลาทางานของครึ่งซ้ายรวมกับครึ่งขวา และรวมกับเวลาที่ใช้รวมกับ Array
ทั้งสองอีกทีหนึ่ง[ซึ่งให้เป็น O(n)]
T(1) = 1
T(n) = 2T(n/2) + n
เวลาทางานใน Merge Sort
-ใช้ต้นไม้จาลองการเรียกซ้า เพราะMerge Sort จะทาการแบ่งซ้าเรื่อยๆจนแบ่งไม่ได้
𝑇 𝑛 = 2𝑇
𝑛
2
+ 𝑂 𝑛 สาหรับ 𝑛 > 1, 𝑇 1 = Θ(1)
n
𝑛
2
𝑛
2
𝑛
4
𝑛
4
𝑛
4
𝑛
4
เวลาทางานใน Merge Sort
+ ขนาดข้อมูล n มีการลดลง 1 ครั้งเป็น
𝑛
2
+ ซึ่งในการลด K ครั้ง จะเหลือเป็น
𝑛
2 𝑘 ซึ่งจะเหลือเป็น 1 เมื่อ 2 𝑘 = 𝑛 หรือครั้งที่ 𝑘 = log 𝑛
เวลาทางานใน Merge Sort
n
𝑛
2
𝑛
2
𝑛
4
𝑛
4
𝑛
4
𝑛
4
1 1 1 1
n
n
n
n
Log n
เวลาทางานใน Merge Sort
+ จะได้ว่า 𝑇 𝑛 = 𝑛 + 𝑛 + 𝑛 + ⋯ + 𝑛 เป็นจานวนทั้งหมด log 𝑛
+ ดังนั้นเราจะประมาณได้ว่า 𝑇 𝑛 ∈ 𝑂 𝑛 log 𝑛 หรือมี 𝑐 ซึ่ง 𝑇 𝑛 ≤ 𝑐𝑛 log 𝑛
+ ถ้านาไปแทนกลับในสัมพันธ์ เวียนเกิดจะได้
𝑇 𝑛 = 2𝑇
𝑛
2
+ Θ(n)
≤
2𝑐𝑛
2
log
𝑛
2
+ Θ(n) = 𝑐𝑛 log 𝑛 − log 2 + Θ(n)
≤ 𝑐𝑛 log 𝑛 − 𝑐𝑛 + Θ(n) ∈ 𝑂(𝑛 log 𝑛)
เวลาทางานใน Merge Sort
+++ โปรแกรมCodeและการรัน Pythonds +++
http://interactivepython.org/runestone/static/pythonds/SortSearch/TheMergeSort.html
+++อ้างอิง+++
http://www.slideshare.net/nantananeungmctha/ss-38392265
http://www.cp.eng.chula.ac.th/~somchai/ULearn/DataStructures/Topics/pdf/sorting_2up.pdf
+++ ผู้เปิดโอกาศในการค้นหา+++
Google
Youtube

More Related Content

What's hot

รายงาน คอม
รายงาน คอมรายงาน คอม
รายงาน คอม
NooLuck
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุล
chanoot29
 
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
krissapat
 
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กรบทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
Sanyawadee
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)
Fair Kung Nattaput
 

What's hot (20)

Powerpoint3กระบวนการทางธุรกิจระบบสารสนเทศ
Powerpoint3กระบวนการทางธุรกิจระบบสารสนเทศPowerpoint3กระบวนการทางธุรกิจระบบสารสนเทศ
Powerpoint3กระบวนการทางธุรกิจระบบสารสนเทศ
 
รายงาน คอม
รายงาน คอมรายงาน คอม
รายงาน คอม
 
Electronic Data Interchange
Electronic Data InterchangeElectronic Data Interchange
Electronic Data Interchange
 
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
 
002191Chapter 3 Organization
002191Chapter 3 Organization002191Chapter 3 Organization
002191Chapter 3 Organization
 
Cognitivism
CognitivismCognitivism
Cognitivism
 
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสงระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
ระบบฐานข้อมูลสำหรับร้านค้าปลีก โดย สันติ พันไธสง
 
01 introduction to data mining
01 introduction to data mining01 introduction to data mining
01 introduction to data mining
 
Ch10th
Ch10thCh10th
Ch10th
 
ประมวลรายวิชา ง30206 การตัดต่อภาพยนตร์
ประมวลรายวิชา ง30206 การตัดต่อภาพยนตร์ประมวลรายวิชา ง30206 การตัดต่อภาพยนตร์
ประมวลรายวิชา ง30206 การตัดต่อภาพยนตร์
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุล
 
06 classification 2 bayesian and instance based classification
06 classification 2 bayesian and instance based classification06 classification 2 bayesian and instance based classification
06 classification 2 bayesian and instance based classification
 
Aula 02-Tutorial ETL com PDI
Aula 02-Tutorial ETL com PDIAula 02-Tutorial ETL com PDI
Aula 02-Tutorial ETL com PDI
 
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐานการวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
การวิจัยโดยใช้เกมมิฟิเคชั่นเป็นฐาน
 
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
 
ระบบสารสนเทศและข้อมูลข่าวสาร MIS
ระบบสารสนเทศและข้อมูลข่าวสาร MISระบบสารสนเทศและข้อมูลข่าวสาร MIS
ระบบสารสนเทศและข้อมูลข่าวสาร MIS
 
โครงงานคอม เรื่อง ผลไม้แปรรูปจังหวัดระยอง
โครงงานคอม เรื่อง ผลไม้แปรรูปจังหวัดระยองโครงงานคอม เรื่อง ผลไม้แปรรูปจังหวัดระยอง
โครงงานคอม เรื่อง ผลไม้แปรรูปจังหวัดระยอง
 
ข้อสอบ O net การงานฯ ป.6 ชุด 1
ข้อสอบ O net การงานฯ ป.6 ชุด 1ข้อสอบ O net การงานฯ ป.6 ชุด 1
ข้อสอบ O net การงานฯ ป.6 ชุด 1
 
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กรบทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
บทที่5 ระบบข้อมูลข่าวสารในยุคไอทีและผลกระทบต่อองค์กร
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)
 

Merge sort

  • 1. นาย ศีลวัฒน์ วิศวะโยธานันท์ Mc ปี2 No.5704022611175 นาย อนุรักษ์ สุดจอม MC ปี2 No.5704022611124 นาย เอกอังกุล ต่อพล Mc ปี2 No.5704022611183 นาย อริสรา จันทร์อาพร Mc ปี2 No.5704022630374 รายชื่อสมาชิก
  • 2. Sorting คือ? Sorting ในชีวิตประจาวันเราได้มีการจัดเรียงข้อมูลต่างๆ ซึ่งเราจะข้อมูลนั้นไปใช้ในการกระทาอย่าง อื่น ในคอมพิวเตอร์ก็เช่นเดียวกัน ถ้าหากมีข้อมูลมาก ๆ แล้วไม่ทาการเรียงข้อมูล ก็จะทาให้เสียเวลาในการ ค้นหาข้อมูลเป็นอย่างมาก เราจึงต้องมีการเรียงข้อมูลกันก่อนที่จะดึงข้อมูลมาใช้ เพื่อจะได้สะดวกในการเขียน โปรแกรม การค้นหาข้อมูล และเสียเวลาน้อยลง การเรียงข้อมูลจะแบ่งเป็น 2 ลักษณะใหญ่ ๆ
  • 3. การเรียงข้อมูลภายใน ( Internal sorting ) เป็นการเรียงลาดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจาหลัก เวลาที่ใช้ในการเรียงลาดับจะคานึงถึงเวลาที่ใช้ใน การเปรียบเทียบและเลื่อนข้อมูลภายในความจาหลัก การเรียงข้อมูลภายนอก ( External sorting ) เป็นการเรียงลาดับข้อมูลที่เก็บอยู่ในหน่วยความจาสารอง ซึ่งเป็นการเรียงลาดับข้อมูลในแฟ้มข้อมูล (file) เวลาที่ ใช้ในการเรียงลาดับต้องคานึงถึงเวลาที่เสียไประหว่างการถ่ายเทข้อมูลจากหน่วยความจาหลักและหน่วยความจาสารอง นอกเหนือจากเวลาที่ใช้ในการเรียงลาดับข้อมูลแบบภายใน การจัดเรียงลาดับแบ่งเป็น 2 ประเภทใหญ่ๆคือ
  • 4. ชื่อใช้เรียก รูปแบบSorting เวลาการทางาน เลือก Selection sort Θ(𝑛2 ) ฟอง Bubble sort O(𝑛2) แทรก Insertion sort O(𝑛2) เชลล์ Shell sort O(𝑛1.𝑥𝑥) ฮีป Heap sort O(𝑛 log 𝑛) ผสาน Merge sort O(𝑛 log 𝑛) เร็ว Quick sort O(𝑛 log 𝑛) avg. รูปแบบการเรียงแบบต่างๆ ประเภทการจัดเรียง Internal sorting Internal sorting Internal sorting Internal sorting External sorting External sorting Internal sorting
  • 6. Merge Sort +Merge Sort คือหนึ่งในวิธีการจัดเรียงแบบภายนอก(External Sorting) +โดยการทางานจะทาแบบแยกข้อมูลออกมาย่อยๆ และรวมข้อมูลใหม่ +การทางานจะมีเวลาคงตัวไม่ว่าจะกรณีดีสุดหรือแย่สุด
  • 7. รูปแบบการทางานของ Merge Sort • หลักการทางานทั่วไป หรือการ Merge 1.ทาการแบ่งข้อมูลในlistหลักออกมาสองส่วนหรือถ้ามีข้อมูลสองส่วนอยู่แล้ว 2.เรียงข้อมูลในlistในสองส่วนนั้น 3.สร้างlistใหม่เพื่อเก็บlistย่อย 4.Merge list ย่อยโดยมีหลักการดังนี้ นาตัวน้อยสุดของทั้งสองlistมาเปรียบเทียบกันโดยถ้าlistใดมี ค่าน้อยกว่าให้นาค่านั้นมาใส่ใน list ใหม่ และเลื่อนลาดับไปตัวที่มีค่าถัดไป 5.ถ้ามีlistใดที่ไม่สามารถเลื่อนได้แล้วหรือก็คือใช่ข้อมูลหมดแล้วให้นาข้อมูลอีกlistหนึ่งที่เหลืออยู่มาใส่ใน listใหม่ได้เลย
  • 8. 25 20 15 35 2 18 40 2 18 4025 20 15 35 ทาการแบ่ง ข้อมูล จัดเรียงข้อมูล ภายใน การดาเนินงานพื้นฐานของ Merge 15 20 25 35 2 18 40 ทาการเปรียบเทียบ และใส่ในข้อมูลชุด ใหม่ 15 > 215 < 1820 > 1820 < 4025 < 4035 < 40 2 15 18 20 25 35 40
  • 9. รูปแบบการทางานของ Merge Sort • แบบโปรแกรม -คือการทางานของโปรแกรม Merge Sort วิธีการทางาน โดยจะแบ่งเป็นสองช่วงคือ + การแบ่งข้อมูล (Distribution Phase) + จะทาการแบ่งข้อมูลออกเป็นสองส่วนย่อยๆไปเรื่อยจนกว่าจะแบ่งไม่ได้แล้วจึงหยุด + การผสานรวมข้อมูลย่อย(Merge Phase) + จะทาการนาข้อมูลย่อยมาจับคู่และ Merge กัน + จะทาการ Merge ไปเรื่อยจนข้อมูลย่อยทั้งหมดรวมกัน + นาข้อมูลที่ได้ใส่ใน list ใหม่
  • 10. วิธีการทางาน Merge Sort 10 9 15 7 1 14 12 การแบ่งข้อมูล ออกเป็นส่วนๆ Distribution Phase
  • 14. วิธีการทางาน Merge Sort 10 9 15 7 1 14 12 10 9 15 7 1 14 12 10 9 15 7 1 14 12 10 9 15 7 1 14 12 การแบ่งข้อมูล ออกเป็นส่วนๆ Distribution Phase
  • 15. วิธีการทางาน Merge Sort 10 9 15 7 1 14 12 จัดข้อมูลย่อยมาเรียง Merge Phase 9 10 7 15 1 14 10 > 9 15 > 7 1 < 14
  • 18. วิธีการทางาน Merge Sort 10 9 15 7 1 14 12 จัดข้อมูลย่อยมาเรียง 9 7 10 15 1 12 14 1 7 9 10 12 14 15 Merge Phase 9 10 7 15 1 14
  • 21. Code Merge Sort :Pythons
  • 23. เวลาทางานใน Merge Sort ให้ T(n) คือจานวนครั้งของการเปรียบเทียบ เพื่อเรียงลาดับข้อมูล n ตัว T(n/2) + T(n/2) ‘เนื่องจากแบ่งมาสองตัว’
  • 24. เวลาทางานใน Merge Sort + ถ้ามีสมาชิกตัวเดียวจะเห็นได้ชัดว่าเวลาที่ใช้นั้นคงที่ (ให้เป็น 1 ได้) + ถ้ามีสมาชิกหลายตัว เวลาทีใช้จะเท่ากับเวลาทางานของครึ่งซ้ายรวมกับครึ่งขวา และรวมกับเวลาที่ใช้รวมกับ Array ทั้งสองอีกทีหนึ่ง[ซึ่งให้เป็น O(n)] T(1) = 1 T(n) = 2T(n/2) + n
  • 25. เวลาทางานใน Merge Sort -ใช้ต้นไม้จาลองการเรียกซ้า เพราะMerge Sort จะทาการแบ่งซ้าเรื่อยๆจนแบ่งไม่ได้ 𝑇 𝑛 = 2𝑇 𝑛 2 + 𝑂 𝑛 สาหรับ 𝑛 > 1, 𝑇 1 = Θ(1) n 𝑛 2 𝑛 2 𝑛 4 𝑛 4 𝑛 4 𝑛 4
  • 26. เวลาทางานใน Merge Sort + ขนาดข้อมูล n มีการลดลง 1 ครั้งเป็น 𝑛 2 + ซึ่งในการลด K ครั้ง จะเหลือเป็น 𝑛 2 𝑘 ซึ่งจะเหลือเป็น 1 เมื่อ 2 𝑘 = 𝑛 หรือครั้งที่ 𝑘 = log 𝑛
  • 28. เวลาทางานใน Merge Sort + จะได้ว่า 𝑇 𝑛 = 𝑛 + 𝑛 + 𝑛 + ⋯ + 𝑛 เป็นจานวนทั้งหมด log 𝑛 + ดังนั้นเราจะประมาณได้ว่า 𝑇 𝑛 ∈ 𝑂 𝑛 log 𝑛 หรือมี 𝑐 ซึ่ง 𝑇 𝑛 ≤ 𝑐𝑛 log 𝑛 + ถ้านาไปแทนกลับในสัมพันธ์ เวียนเกิดจะได้ 𝑇 𝑛 = 2𝑇 𝑛 2 + Θ(n) ≤ 2𝑐𝑛 2 log 𝑛 2 + Θ(n) = 𝑐𝑛 log 𝑛 − log 2 + Θ(n) ≤ 𝑐𝑛 log 𝑛 − 𝑐𝑛 + Θ(n) ∈ 𝑂(𝑛 log 𝑛)
  • 30. +++ โปรแกรมCodeและการรัน Pythonds +++ http://interactivepython.org/runestone/static/pythonds/SortSearch/TheMergeSort.html +++อ้างอิง+++ http://www.slideshare.net/nantananeungmctha/ss-38392265 http://www.cp.eng.chula.ac.th/~somchai/ULearn/DataStructures/Topics/pdf/sorting_2up.pdf +++ ผู้เปิดโอกาศในการค้นหา+++ Google Youtube