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

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

การเรียงลำดับและการ ค้นหาแบบง่าย Sorting & Searching.

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


งานนำเสนอเรื่อง: "การเรียงลำดับและการ ค้นหาแบบง่าย Sorting & Searching."— ใบสำเนางานนำเสนอ:

1 การเรียงลำดับและการ ค้นหาแบบง่าย Sorting & Searching

2 2/30 Internal Sorting : Internal Sorting :   Bubble Sort   Insertion Sort   Selection Sort Searching : Searching :   Linear search   Binary search การเรียงลำดับและการ ค้นหาแบบง่าย 344-211 Algorithmic Process and Programming, created by Dararat Saelee

3 3/30 Sorting ความหมาย การจัดเรียงลำดับ (Sorting) หมายถึง การจัดเรียงข้อมูล ให้เรียงลำดับตาม เงื่อนไขที่กำหนดไว้ ( มากไปน้อย (descending) หรือ น้อยไปมาก (ascending)) กรณีที่ข้อมูลในแต่เรคอร์ด (record) มี หลายฟิลด์ (field) เราต้องพิจารณา เลือกฟิลด์ ที่สนใจเพื่อใช้ในการ เรียงลำดับ เช่น เรียงลำดับตามรหัส ศึกษา เป็นต้น

4 4/30 Sorting ประเภทของการจัดเรียงลำดับ การจัดเรียงภายใน (Internal Sorting) เป็นการจัดเรียงลำดับข้อมูลที่เก็บอยู่ใน หน่วยความจำของเครื่องคอมพิวเตอร์ การจัดเรียงภายนอก (External Sorting) การจัดเรียงข้อมูลที่เก็บอยู่ในสื่อบันทึก ข้อมูล เช่น Disk โดยทั่วไปการเรียง ประเภทนี้ มักใช้กับข้อมูลที่มีจำนวนมาก ที่ ไม่สามารถเก็บไว้ในหน่วยความจำได้หมด การเรียงในแบบนี้จะต้องแบ่งข้อมูล ออกเป็นส่วนย่อย แล้วนำมาเรียงด้วยการ จัดเรียงแบบภายในก่อน แล้วจึงนำแต่ละ ส่วนย่อยมารวมกัน

5 5/30 Sorting วิธีการจัดเรียงข้อมูลแบบ Internal Sorting การจัดเรียงแบบบับเบิล (Bubble Sort) การจัดเรียงแบบแทรก (Insertion Sort) การจัดเรียงแบบเลือก (Selection Sort)

6 6/30 Bubble Sort น้อยไปมาก เป็นการจัดเรียงโดยการเปรียบเทียบค่า 2 ค่าที่ติดกัน ทำต่อเนื่องกันไปเรื่อย ๆ และตัดสินใจว่าจะสลับตำแหน่งกัน หรือไม่ เช่น ถ้าต้องการเรียงลำดับ ข้อมูลจาก น้อยไปมาก ข้อมูลที่มีค่ามากต้องอยู่หลังข้อมูลที่ค่า น้อย ดังนั้น สำหรับข้อมูล 2 ค่าที่อยู่ติดกัน ถ้าข้อมูลตัวหน้ามากกว่าตัวหลัง ให้สลับตำแหน่ง กัน แต่ถ้าข้อมูลตัวหน้าน้อยกว่าตัวหลัง ไม่ต้องสลับ ตำแหน่งกัน ทำเช่นนี้ไปเรื่อย ๆ จนกว่าการเปรียบเทียบข้อมูล ตลอดทั้งชุดจะไม่มีการสลับตำแหน่งกันอีก

7 Algorithm Bubble_Sort (to sort unsorted array with size num) 1. for (j  2, j { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.in.th/8/2058777/slides/slide_7.jpg", "name": "Algorithm Bubble_Sort (to sort unsorted array with size num) 1.", "description": "for (j  2, j

8 8/30 Bubble Sort 43 22 80 17 36 16 29 22 43 80 17 36 16 29 22 43 17 80 36 16 29 22 43 17 36 80 16 29 22 43 17 36 16 80 29 22 43 17 36 16 29 80 22 17 43 36 16 29 80 22 17 36 43 16 29 80 22 17 36 16 43 29 80 22 17 36 16 29 43 80 Pass 1 Pass 2 344-211 Algorithmic Process and Programming, created by Dararat Saelee

9 9/30 Bubble Sort 22 17 36 16 29 43 80 17 22 36 16 29 43 80 17 22 16 36 29 43 80 17 22 16 29 36 43 80 17 16 22 29 36 43 80 16 17 22 29 36 43 80 Pass 3 Pass 4 Pass 5 Pass 6 344-211 Algorithmic Process and Programming, created by Dararat Saelee

10 10/30 Insertion Sort เป็นการจัดเรียงโดยการนำข้อมูลที่ จะทำการเรียงนั้น ๆ ไปจัดเรียงทีละ ตัว โดยการแทรกตัวที่จะเรียงไว้ใน ตำแหน่งที่เหมาะสมของข้อมูลที่มี การจัดเรียงเรียบร้อยแล้ว ณ ตำแหน่งที่ถูกต้อง ซึ่ง เริ่มพิจารณาตั้งแต่ข้อมูลตำแหน่งที่ 2 เป็นต้นไป โดยพิจารณาว่าจะวางข้อมูลที่กำลัง พิจารณา ณ ตำแหน่งใดเพื่อให้เกิด การเรียงลำดับ จนกระทั่งหมด

11 Algorithm Insertion_Sort 1. for(i  1, i0 && data[j-1]>temp ; j--) 1.2.1 data[j]  data[j-1]; 1.3 data[j]  temp; 2. end 11/30 (ascending order)

12 12/30 Insertion Sort 43 22 80 17 36 16 29 22 43 80 17 36 16 29 17 22 43 80 36 16 29 17 22 36 43 80 16 29 16 17 22 36 43 80 29 16 17 22 29 36 43 80 What if descending order? #compare = 17, #move = 14, #pass = 5 344-211 Algorithmic Process and Programming, created by Dararat Saelee

13 13/30 Selection sort เป็นการจัดเรียงโดยการเริ่มต้น ค้นหาข้อมูลตัวที่น้อยที่สุด ( มากที่สุด ) จากข้อมูลที่มีอยู่ ทั้งหมด แล้วเอามาเก็บไว้ข้าง นอก แล้วกลับไปหาข้อมูลตัวที่ น้อยที่สุด ( มากที่สุด ) ในกอง ต่อไปจนกว่าจะหมดกอง

14 Algorithm Selection_Sort 1. for(i  0 ; i { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.in.th/8/2058777/slides/slide_14.jpg", "name": "Algorithm Selection_Sort 1.", "description": "for(i  0 ; i

15 15/30 Selection Sort (with smallest) 43 22 29 17 36 16 80 16 22 29 17 36 43 80 16 17 29 22 36 43 80 16 17 22 29 36 43 80 #move = 3, #compare = 21, #pass = 6 344-211 Algorithmic Process and Programming, created by Dararat Saelee

16 16/30 Selection Sort (with largest) 43 22 80 17 36 16 29 43 22 29 17 36 16 80 16 22 29 17 36 43 80 16 22 17 29 36 43 80 16 17 22 29 36 43 80 #move = 4, #compare = 21, #pass = 6 344-211 Algorithmic Process and Programming, created by Dararat Saelee

17 17/ 30 Searching คือการค้นหาข้อมูล จากชุด ข้อมูล ซึ่งผลลัพธ์ จะต้องบอก ได้ว่าค้นหาเจอหรือค้นหาไม่ เจอ 2 search methods : Linear/Sequential search Binary search

18 18/ 30 Linear/Sequential Search เหมาะกับการค้นหาข้อมูลจากชุด ข้อมูลขนาดเล็ก โดยเริ่มเปรียบเทียบข้อมูลที่ ต้องการค้นหา (search key) กับ ข้อมูลตัวแรก จนกว่าจะเจอข้อมูลที่ ต้องการ

19 19/ 30 Linear/Sequential Search กรณีข้อมูลไม่มีการ เรียงลำดับ : ให้ค้นหาตั้งแต่ข้อมูล ตัวแรกจนถึงตัวสุดท้ายของชุด ข้อมูล กรณีข้อมูลถูกเรียงลำดับจาก น้อยไปมาก : ให้ค้นหาตั้งแต่ข้อมูล ตัวแรกจนถึงตัวสุดท้ายที่มีค่าน้อย กว่าข้อมูลที่ต้องการค้นหา

20 20/ 30 Linear/Sequential Search 43 22 17 36 16 search key = 25, (unsuccessful) 16 17 22 36 43 Sorted data Sorted data What if descending sorted data? Unsorted data 344-211 Algorithmic Process and Programming, created by Dararat Saelee

21 21/ 30 Binary Search ใช้ค้นหาข้อมูลบนชุดข้อมูลที่มีการ เรียงลำดับเรียบร้อยแล้ว มีขั้นตอนดังนี้ 1. หาค่าข้อมูลที่อยู่ตรงกลางชุดข้อมูล (middle value) ซึ่งเป็นค่าที่อยู่อยู่ ณ ตำแหน่ง เมื่อ N คือจำนวนข้อมูล ทั้งหมด 2. เปรียบเทียบค่าที่อยู่ตรงกลาง (middle value) กับค่าที่ต้องการ ค้นหา (search key)

22 22/ 30 Binary Search 3. ถ้าไม่ตรงกัน กรณีข้อมูลเรียงลำดับ จากน้อยไปมาก ให้ดำเนินการดังนี้ 3.1 ถ้า search key < middle value concentrate on the first half data and do (1) - (3) 3.2 ถ้า search key > middle value concentrate on the second half data and do (1) - (3)

23 23/ 30 Binary Search 12 15 18 23 26 37 39 41 43 48 mid Search key = 17 344-211 Algorithmic Process and Programming, created by Dararat Saelee

24 24/ 30 Binary Search 12 15 18 23 26 37 39 41 43 48 mid Search key = 37 344-211 Algorithmic Process and Programming, created by Dararat Saelee

25 25/30 Exercise 1 Ascending Sort 23 78 45 8 32 99 19 56 Searching 1) key = 32 2) key = 70 344-211 Algorithmic Process and Programming, created by Dararat Saelee

26 26/30 Exercise 2 Descending Sort 90 31 9 25 43 11 68 57 88 Searching 1) key = 89 2) key = 25 What if adds 18 at the end? 344-211 Algorithmic Process and Programming, created by Dararat Saelee

27 27 Have a courage to make your dream come true … 344-211 Algorithmic Process and Programming, created by Dararat Saelee


ดาวน์โหลด ppt การเรียงลำดับและการ ค้นหาแบบง่าย Sorting & Searching.

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


Ads by Google