การเรียงข้อมูล 1. Bubble Sort 2. Insertion Sort 3. Heap Sort

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คณิตคิดเร็วโดยใช้นิ้วมือ
Advertisements

งานกลุ่มส่งเสริมและพัฒนาการบริหารการจัดการฯ
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
การเรียงลำดับข้อมูล (Sorting).
ที่ โรงเรียน เฉลี่ย 1 บ้านหนองหว้า บ้านสะเดาหวาน
แบบรูปและความสัมพันธ์
ยินดีต้อน เข้าสู่ โครงงาน.
พลังงานในกระบวนการทางความร้อน : กฎข้อที่หนึ่งของอุณหพลศาสตร์
การซ้อนทับกัน และคลื่นนิ่ง
การบวก จำนวนเต็มบวก กับ จำนวนเต็มบวก
มิติที่ 1 มิติด้านประสิทธิผลตามแผนปฏิบัติราชการ
ผอ. สำนัก สถาปัตยกรรม (1/2) กลุ่มงาน สถาปัตยกรรม ข้าราชการ พนักงาน ราชการ 11 ลูกจ้างประ จำ -- กลุ่มงานงานตรวจสอบงาน สถาปัตยกรรมและงานกำหนด มาตรฐาน.
เปรียบเทียบจำนวนประชากรทั้งหมดจากฐาน DBPop Original กับจำนวนประชากรทั้งหมดที่จังหวัดถือเป็นเป้าหมาย จำนวน (คน) 98.08% % จังหวัด.
แนวทางการยกระดับผลสัมฤทธิ์ทางการเรียน ผลการทดสอบระดับชาติ (o – net) ปีการศึกษา 2554 โรงเรียนสรวงสุทธาวิทยา สำนักงานเขตพื้นที่การศึกษามัธยมศึกษา เขต.
ม. ค.57 เปรียบเทียบ ม. ค.56 ปี 56 เกิด 3 จับ 3 ราย (100.00%) ปี 57 เกิด 3 จับ 2 ราย ( % ) คดีเท่ากัน ผลการจับกุมบรรลุเป้า ( เป้า %)
Hashing Function มีหลายฟังก์ชั่น การเลือกใช้ขึ้นอยู่กับความเหมาะสมของข้อมูล ตัวอย่างของฟังก์ชั่นแฮชมีดังนี้ 1. Mod คือการนำค่าคีย์มา mod ด้วยค่า n ใด.
การเรียงลำดับและการค้นหาแบบง่าย
การจัดเรียงข้อมูล Sorting.
การเลื่อนเงินเดือนข้าราชการ
สำเร็จการศึกษาในเวลา 4 ปี
จำนวนนับใดๆ ที่หารจำนวนนับที่กำหนดให้ได้ลงตัว เรียกว่า ตัวประกอบของจำนวนนับ จำนวนนับ สามารถเรียกอีกอย่างว่า จำนวนเต็มบวก หรือจำนวนธรรมชาติ ซึ่งเราสามารถนำจำนวนนับเหล่านี้มา.
การขอเบิกเงินนอกงบประมาณ
ผลเบิกจ่ายภาพรวมกรมส่งเสริมสหกรณ์ (แยกตามประเภทงบรายจ่าย) ประจำปีงบประมาณ 2557 ข้อมูล ณ วันที่ 21 เมษายน 2557 เวลา น. ที่มา : กองคลัง กลุ่มบัญชีและงบประมาณ.
จำนวนทั้งหมด ( Whole Numbers )
Searching.
การบ้าน แซมเปิลสเปซ.
การดำเนินงานอาชีวเวชศาสตร์: แพทย์ที่ผ่านการอบรม
Office of information technology
ความคิดเห็นของประชาชนเกี่ยวกับ กองทุนหมู่บ้านและชุมชนเมือง
ความคิดเห็นของข้าราชการเกี่ยวกับ สวัสดิการการรักษาพยาบาล พ.ศ. 2546
สำนักงานสถิติแห่งชาติ กระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร
สรุปผลการสำรวจ ความคิดเห็นของประชาชนเกี่ยวกับเขื่อนปากมูล
สำนักงานสถิติแห่งชาติ กระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร
สรุปผลการสำรวจ ความคิดเห็นของประชาชนเกี่ยวกับ กองทุนหมู่บ้านและชุมชนเมือง พ.ศ สำนักงานสถิติแห่งชาติกระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร สิงหาคม.
ข้อมูลเศรษฐกิจการค้า
การจัดเรียงข้อมูล Sorting Internal Sorting External Sorting.
การเลื่อนเงินเดือนในระบบใหม่
สำนักวิชาการและแผนงาน
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 30 มิถุนายน 2555 สำนักวิชาการและ แผนงาน.
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 31 พฤษภาคม 2555.
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 15 มิถุนายน 2555.
การดำเนินงานตามแผนปฏิบัติการ โครงการที่ได้รับ
ความคิดเห็นของประชาชนเกี่ยวกับเกมออนไลน์ ในเขตกรุงเทพมหานคร
A Comparison on Quick and Bubble sort on large scale data
F M B N สมบัติของจำนวนนับ ตัวคูณร่วมน้อย (ค.ร.น.).
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
สรุปผลสัมฤทธิ์ปีการศึกษา 2552 ชั้ น จำนว นสาระการเรียนรู้ นักเรี ยนทค ค. เพิ่มวสพ.พ. ศ.ศ. ดน ตรีง.ง. คอ ม. อ อ. เพิ่ม ป.1ป
วิวัฒน์ ชินนาทศิริกุล
School of Information Communication Technology,
ขั้นตอนการจัดนักศึกษาเข้าสังกัดสาขาวิชา
School of Information Communication Technology,
สรุปผลการสำรวจ ความคิดเห็นของประชาชนเกี่ยวกับ การป้องกันและปราบปรามยาเสพติด (ก่อนและหลัง การประกาศสงครามขั้นแตกหักเพื่อเอาชนะยาเสพติด) พ.ศ สำนักงานสถิติแห่งชาติ
ผลการทดสอบทางการศึกษาระดับชาติขั้นพื้นฐาน
สรุปผลการสำรวจ ความคิดเห็นของประชาชน
การค้นในปริภูมิสถานะ
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
วิธีเรียงสับเปลี่ยนและวิธีจัดหมู่
กราฟเบื้องต้น.
รายละเอียด ระดับความพึงพอใจ มาก ที่สุด (5) มาก (4) ปาน กลาง (3) น้อย (2) น้อย ที่สุด (1) ค่าเฉลี่ ย 1. ผู้เรียนชอบทำงานร่วมกับเพื่อ เมื่อเรียนวิชาระบบเครือข่าย.
การจัดเรียงข้อมูล (sorting)
โครงสร้างข้อมูลแบบ สแตก (stack)
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
กราฟเบื้องต้น.
Week 13 Basic Algorithm 2 (Searching)
รายงานความก้าวหน้าการตรวจติดตามประเมิน
ผลการประเมิน คุณภาพการศึกษาขั้นพื้นฐาน ปีการศึกษา
คณิตศาสตร์ (ค33101) ชั้นมัธยมศึกษาปีที่ 3 หน่วยการเรียนที่ 7
แผนภูมิแสดงแผนและผลการใช้จ่ายงบประมาณปี 2549 การใช้ จ่าย ( สะสม ) ต.ค.ต.ค. พ.ย.พ.ย. ธ.ค.ธ.ค. ม.ค.ม.ค. ก.พ.ก.พ. มี. ค. เม. ย. พ.ค.พ.ค. มิ. ย. ก.ค. ก.ค.
ใบสำเนางานนำเสนอ:

การเรียงข้อมูล 1. Bubble Sort 2. Insertion Sort 3. Heap Sort 4. Quick Sort 5. Merge Sort 6. Radix Sort 7. Selection Sort

1. Bubble Sort จะเปรียบเทียบค่า 2 ค่าที่ติดกัน ถ้า ไม่อยู่ตามที่เรากำหนด เช่น จากน้อยไปมาก หรือ จากมากไปน้อย ให้แลกเปลี่ยนตำแหน่งของค่าทั้ง 2 นั้น

เรียงจากมากไปน้อย แบบ Bubble sort 5 1 2 8 9 5 1 2 8 9 5 2 1 8 9 5 2 1 8 9 5 2 8 1 9 5 8 2 1 9 8 5 2 1 9 8 5 2 1 9 8 5 2 1 9 8 5 2 1 9 8 5 2 1 9 8 5 2 1 9 8 5 2 1 9

2. Insertion Sort ต้องมีพื้นที่หน่วยความจำเพิ่มขึ้นอีก N ตำแหน่ง สำหรับเก็บส่วนที่เรียงแล้ว เช่น มี A(1: N) ที่ยังไม่เรียง เราต้องใช้ B(1:N) มาช่วย โดยจะดึงค่าจาก A ไปใส่ไว้ใน B หรืออาจจะใช้ Sort in Place คือไม่ต้องมีหน่วยความจำเพิ่ม J ส่วนที่เรียงแล้ว I ส่วนที่ยังไม่เรียง

เช่น 5, 4, 2, 8, 8, 9, 6 ต้องการเรียงจากน้อยไปมาก เช่น 5, 4, 2, 8, 8, 9, 6 ต้องการเรียงจากน้อยไปมาก 5 4 2 8 9 6 J 5 4 2 8 9 6 4 5 2 8 9 6 J 2 4 5 8 9 6 J 2 4 5 8 9 6 J 2 4 5 8 9 6 J 2 4 5 8 9 6 J 2 4 5 6 8 9 J

3. Heap Sort การเรียงโดยอาศัยโครงสร้าง heap เป็นวิธีการเรียงที่ดีที่สุด โครงสร้าง heap คือ รูตโหนด จะมีค่ามากกว่าด้านซ้าย และ ขวา ขั้นตอนการทำ Heap Sort สร้าง Heap ก่อน ทำการ Output Root Node จะได้ค่าแรก (ค่าที่มากที่สุด) เรียงจากมากไปน้อย ปรับแต่งต้นไม้ที่เหลือให้เป็น Heap

เช่น 22, 35,42, 38, 32, 26, 27, 90 22 35 42 38 32 27 26 90 ต้นไม้ที่แทนด้วยตำแหน่งของ Array

ขั้นตอนที่ 1 การสร้าง Heap ให้ I เป็น Pointer ชี้ไปยัง Node ใหม่ ให้เปรียบเทียบโหนดที่เข้าไปใหม่ กับ โหนดที่ Root Node ถ้า โหนดใหม่ มากกว่า Root Node ให้ แลกที่กัน และเลื่อน I ไปด้วย (กรณี เรียงจากมากไปหาน้อย) ถ้าเรียงจากน้อยไปมาก ให้เปรียบเทียบ โหนดใหม่ น้อยกว่า Root Node ให้แลกที่กัน และ เลื่อน I ไปด้วย ทำการเปรียบเทียบไปเรื่อยจนกว่าจะทำไม่ได้

Heap Sort Example : Data -> 22 35 42 38 32 26 27 90 22 90 35 42 42 35 38 32 26 57 38 32 26 27 90 22 Binary tree ของ Array Heap Structure

Heap Sort Data -> 22 35 42 38 32 26 27 90 I = 42 22 35 42 35 22 42 22 35 38 42 42 42 I = 38 38 35 38 35 38 35 22 32 22 32 26 22 32 26 27 I

Heap Sort Data -> 22 35 42 38 32 26 27 90 I=90 42 90 I = 90 38 35 42 35 22 32 26 27 38 32 26 27 90 22

ได้โครงสร้าง Heap 90 42 35 38 32 27 26 22

ขั้นตอนที่ 2 การ output โดยการนำค่าที่ Root Node ซึ่งตำแหน่งที่ 1 ในอาร์เรย์ โดยการแลกที่กับค่าสุดท้ายของอาร์เรย์ ค่าที่ Output ไปแล้ว แทนด้วย

I ปรับแต่งต้นไม้ 90 22 Re-Heap 42 42 35 42 35 38 35 38 32 26 27 38 32 Heap Sort Data -> 22 35 42 38 32 26 27 90 I ปรับแต่งต้นไม้ 90 22 Re-Heap 42 42 35 42 35 38 35 38 32 26 27 38 32 26 27 22 32 26 27 22 90 90 42 Re-Heap 27 38 output 38 35 38 35 32 35 22 32 26 27 22 32 26 42 22 27 26 42 I 90 90 90

22 35 42 38 32 26 27 90 จะได้ข้อมูลที่เรียงแล้ว จาก มากไปหาน้อย คือ 90 42 38 35 32 27 26 22 67 45 3 7 9 32 6 10 เรียงน้อยไปมาก

ข้อมูล 88, 78, 34, 67, 74, 25, 27, 14, 40 Bubble Sort น้อยไปมาก Insertion Sort มากไปน้อย Heap Sort น้อยไปมาก

ขั้นที่ 3 การปรับต้นไม้ ให้ตั้งค่า Pointer I ชี้ไปยัง Root Node ให้แลกค่าที่มากที่สุดระหว่าง โหนดซ้าย กับ โหนดขวา ของ Node I มาอยู่ตำแหน่ง I แล้วให้เลื่อน Pointer I มาอยู่ตำแหน่งใหม่ด้วย ทำไปเรื่อยๆ จนกว่าจะทำไม่ได้

4. Quick Sort เหมาะกับลิสที่มีขนาดใหญ่ และเป็นการเรียงข้อมูลที่ให้ค่าเฉลี่ยของ เวลาน้อยที่สุด วิธีการ ให้ A (X1, X2… , Xn ) เป็นลิสต์ของค่าหรือ Record ที่ยังไม่ได้เรียง เราจะเลือก X1 จากนั้นจะแบ่งลิสต์ A ออกเป็น 2 ส่วนคือ S1 = ข้อมูลที่มีค่าน้อยกว่า X1 S2 = ข้อมูลที่มีค่ามากกว่า X1 นั้นคือ { S1} < X1 < {S2} โดยที่ {S1} และ {S2} เป็นข้อมูลที่ยังไม่เรียง

ขั้นตอนการเรียง Quick Sort 1. ใช้ Pointer 2 ตัว คือ F , R 2. เปรียบเทียบ ระหว่างค่าที่ชี้โดย F และ R (Pointer ที่ชี้ตำแหน่ง X1 ไม่ว่าจะเป็น F, R จะไม่เป็นตัวเลื่อนไปยังตำแหน่งอื่น) 3. การเปรียบเทียบจะมีการเลื่อน F ไปข้างหน้า และ R เลื่อนถอยหลัง 4. การเลื่อน Pointer ให้เลื่อนตัวที่ไม่ได้ชี้ไปยังค่า X1 หรือ ที่ทำหน้าที่ X1 ในการเรียงเที่ยวนั้น ถ้า F และ R พบกันที่ค่า X1 เป็นการสิ้นสุดเที่ยวนั้น ฉะนั้นจึงเป็นการแบ่งลิสต์ออกเป็น 2 ส่วนโดย ค่า X1 เป็นค่าแบ่ง

5. ให้ Push ค่า {S2} ไปไว้ใน Stack ก่อน 7. PoP ค่า {S2} ขึ้นมาทำการเรียงโดยใช้ 1-4 เหมือนเดิม จะได้ข้อมูลที่เรียงแล้ว

เช่น 27, 15, 22, 37, 11, 59 เรียง น้อยไปมาก R F 27 15 22 37 11 59 x1 x2 x3 x4 x5 x6 27 15 22 37 11 59 F R R F 11 15 22 37 27 59 R F 11 15 22 37 27 59 F R 11 15 22 37 27 59 F R 13 15 22 37 27 59 R F 13 15 22 27 37 59

F R 11 15 22 37 27 59 F R 11 15 22 27 37 59 F R 11 15 22 27 37 59 (15 11 22 ) 27 ( 59 37) 56 15 48 50 80 59 70 3 25 60 18

5. Merge Sort เป็นวิธีเรียงข้อมูลภายนอก เพราะใช้เรียงข้อมูลขนาดใหญ่ เรียงครั้งละ 2 ค่า จะได้กลุ่มย่อย ของข้อมูลเป็น n/2 กลุ่ม แต่ละกลุ่มมี 2 ค่า Merge 2 กลุ่มเข้าด้วยกัน จะได้กลุ่มเรียงแล้ว

เช่น 44, 33, 11, 55, 77, 90, 40, 60, 99, 22, 88, 66 44 33 11 55 77 90 40 60 99 22 88 66 33 44 11 55 77 90 40 60 22 99 66 88 11 33 44 55 40 60 77 90 22 66 88 99 11 33 44 55 40 60 77 90 22 66 88 99 11 33 40 44 55 60 77 90 22 66 88 99 11 33 40 44 55 60 77 90 22 66 88 99 11 22 33 40 44 55 60 66 77 88 90 99 11 22 33 40 44 55 60 66 77 88 90 99

6. Radix Sort จะไม่พิจารณาค่าที่แท้จริงของคีย์ จะแยกพิจารณาคีย์ออกเป็น ที่ละหลัก วิธีเรียง เตรียม Bucket ไว้ 10 ถัง อ่านค่าข้อมูลที่ละตัว พิจารณาหลักสูดท้ายก่อน นำข้อมูลไปเก็บไว้ตามค่านั้นๆ อ่านค่าหลักต่อไปจนกว่าจะครบทุกหลัก จะได้ข้อมูลที่เรียงแล้ว

RADIX SORT Technique : Start with the ones column of each key and sort all 0s, 1s, 2s, etc into separate group. (ครั้งที่ 1 [หลักหน่วย]) 131 41 59 26 53 58 97 93 23 84 16 77 1 01 23 41 93 16 77 31 53 84 26 97 58 59 ถังข้อมูล 0 1 2 3 4 5 6 7 8 9

RADIX SORT 2. Arrange the groups in ascending order. 23 41 93 16 77 31 53 84 26 97 58 59 ถังข้อมูล 0 1 2 3 4 5 6 7 8 9 (ข้อมูลที่ได้จากครั้งที่ 1) 31 41 53 93 23 84 26 16 97 77 58 59

RADIX SORT Repeat this sorting with the 1s, 10s, 100s, 1000s, etc columns. (ข้อมูลที่ได้จากครั้งที่ 1) 31 41 53 93 23 84 26 16 97 77 58 59 (ครั้งที่ 2 [หลักสิบ]) 59 26 58 97 01 16 23 31 41 53 77 84 93 ถังข้อมูล 0 1 2 3 4 5 6 7 8 9 (ข้อมูลที่ได้จากครั้งที่ 2) 16 23 26 31 41 53 58 59 77 84 93 97 Sorted data

7. Selection Sort เป็นวิธีที่ง่ายที่สุด หาตำแหน่งข้อมูลที่มีค่าน้อยที่สุด สลับตำแหน่ง key ไปไว้ในตำแหน่งที่ 1 นำค่าตำแหน่งที่ 1 แทน ณ ข้อมูลน้อยที่สุด จะได้ข้อมูลตำแหน่งที่ 1 มีค่าน้อยที่สุด

เช่น 44, 33, 11, 55, 77, 90, 40, 60, 22, 88 44 33 11 55 77 90 40 60 22 88 11 33 44 55 77 90 40 60 22 88 11 22 44 55 77 90 40 60 33 88 11 22 44 55 77 90 40 60 33 88 11 22 33 55 77 90 40 60 44 88 11 22 33 55 77 90 40 60 44 88 11 22 33 40 77 90 55 60 44 88 11 22 33 40 77 90 55 60 44 88

11 22 33 40 77 90 55 60 44 88 11 22 33 40 44 90 55 60 77 88 11 22 33 40 44 90 55 60 77 88 11 22 33 40 44 55 90 60 77 88 11 22 33 40 44 55 90 60 77 88 11 22 33 40 44 55 60 90 77 88 11 22 33 40 44 55 60 90 77 88 11 22 33 40 44 55 60 77 90 88 11 22 33 40 44 55 60 77 90 88 11 22 33 40 44 55 60 77 88 90

ทำส่งในชั้นเรียน 67 45 3 7 191 32 16 10 40 90 87 771 60 50 29 เรียงน้อยไปมาก

การบ้าน 56 15 48 50 80 59 70 1 4 81 287 891