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

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

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

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


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

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

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

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

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

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

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

7 Algorithm Bubble_Sort
(to sort unsorted array with size num) 1. for (j2, j<num, jj+1) for (i2, i≤num, ii+1) 1.1 if (data[i] < data[i-1]) 1.1.1 temp  data [i] 1.1.2 data[i]  data[i-1] 1.1.3 data[i-1]  temp 2. end.

8 Bubble Sort Pass 1 Pass 2 Algorithmic Process and Programming , created by Dararat Saelee

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

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

11 Algorithm Insertion_Sort
(ascending order) 1. for(i1, i<num, ii+1) 1.1 temp = data[i] 1.2 for(j  i ; j>0 && data[j-1]>temp ; j--) data[j]  data[j-1]; 1.3 data[j]  temp; 2. end

12 Insertion Sort #compare = 17, #move = 14, #pass = 5 What if descending order? Algorithmic Process and Programming , created by Dararat Saelee

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

14 Algorithm Selection_Sort
(ascending order) 1. for(i  0 ; i<max ; i++) 1.1 min_position  i 1.2 for(j  i+1 ; j<=max ; j++) if(data[j] < data[min_position]) min_position  j 1.3 temp  data[min_position] 1.4 data[min_position]  data[i] 1.5 data[i]  temp 2. end

15 Selection Sort (with smallest)
#move = 3, #compare = 21, #pass = 6 Algorithmic Process and Programming , created by Dararat Saelee

16 Selection Sort (with largest)
#move = 4, #compare = 21, #pass = 6 Algorithmic Process and Programming , created by Dararat Saelee

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

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

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

20 Linear/Sequential Search
search key = 25 , (unsuccessful) Sorted data What if descending sorted data? Unsorted data Algorithmic Process and Programming , created by Dararat Saelee

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

22 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

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

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

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

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

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


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

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


Ads by Google