งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

การเรียงข้อมูล 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. Insertion Sort 3. Heap Sort 4. Quick Sort 5. Merge Sort 6. Radix Sort 7. Selection Sort."— ใบสำเนางานนำเสนอ:

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

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

3 เรียงจากมากไปน้อย แบบ Bubble sort

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

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

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

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

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

9 Heap Sort Example : Data -> Binary tree ของ Array Heap Structure

10 Heap Sort Data -> I = I = I

11 Heap Sort Data -> I = I=9 0

12 ได้โครงสร้าง Heap

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

14 Heap Sort Data -> Re-Heap Re-Heap output I ปรับแต่งต้นไม้ I

15 จะได้ข้อมูลที่เรียงแล้ว จาก มากไปหาน้อย คือ เรียง น้อยไปมาก

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

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

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

19 ขั้นตอนการเรียง 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 เป็นค่าแบ่ง

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

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

22 F R F R FR ( ) 27 ( 59 37)

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

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

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

26 RADIX SORT 1.Start with the ones column of each key and sort all 0s, 1s, 2s, etc into separate group (ครั้งที่ 1 [หลักหน่วย]) Technique : 31 ถังข้อมูล

27 RADIX SORT (ข้อมูลที่ได้จากครั้งที่ 1) 31 ถังข้อมูล Arrange the groups in ascending order.

28 RADIX SORT (ข้อมูลที่ได้จากครั้งที่ 1) 16 ถังข้อมูล Repeat this sorting with the 1s, 10s, 100s, 1000s, etc columns. (ครั้งที่ 2 [หลักสิบ]) (ข้อมูลที่ได้จากครั้งที่ 2) Sorted data 01

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

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

31

32 ทำส่งในชั้นเรียน ทำส่งในชั้นเรียน  เรียงน้อยไปมาก

33 การบ้าน z


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

งานนำเสนอที่คล้ายกัน


Ads by Google