ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
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 (j2, j<num, jj+1) for (i2, i≤num, ii+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(i1, i<num, ii+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
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.