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

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

BC322 : Computer Programming 1 BC322 ครั้งที่ 11 การเรียงลำดับข้อมูล(Sorting)

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


งานนำเสนอเรื่อง: "BC322 : Computer Programming 1 BC322 ครั้งที่ 11 การเรียงลำดับข้อมูล(Sorting)"— ใบสำเนางานนำเสนอ:

1 BC322 : Computer Programming 1 BC322 ครั้งที่ 11 การเรียงลำดับข้อมูล(Sorting)

2 BC322 : Computer Programming 2 การเรียงลำดับ (Sorting) •Bubble sort •Selection sort

3 BC322 : Computer Programming 3 การเรียงลำดับ (Sorting): Bubble Sort • ทำการเปรียบเทียบค่าในตาราง ครั้งละ 2 ค่า ซึ่งมีตำแหน่งติดกัน [I] กับ [I+1] โดยเริ่มต้น จากซ้ายมือสุด นั่น ก็คือ I = 0 • ใช้เงื่อนไข x[I] > x[I+1] เป็นตัว พิจารณาว่าจะต้องทำการสลับตำแหน่ง ระหว่าง 2 ตำแหน่งหรือไม่ • ทำการเปรียบเทียบจนกระทั่ง ใน 1 รอบไม่มีการสลับตำแหน่งเลย ถึงหยุด การทำงาน

4 BC322 : Computer Programming 4 การเรียงลำดับ (Sorting): Bubble Sort [0][0] [1][1] [2][2] [3][3] [4][4] [X][X] กำหนดให้ทำการเรียง จากน้อยไปมาก การเรียงลำดับจากน้อยไป มาก - ทำงาน N-1 รอบ (N คือ จำนวนข้อมูล ) - ค่าที่มากที่สุดของรอบนั้นจะ ถูกเลื่อนไปอยู่ในช่องสุดท้าย ของอาร์เรย์ในรอบนั้น ๆ - มีการสลับค่าเมื่อ X[i] > X[i+1]

5 BC322 : Computer Programming [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=0 Bubble Sort

6 BC322 : Computer Programming 6 [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=1 Bubble Sort

7 BC322 : Computer Programming 7 [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=2 Bubble Sort

8 BC322 : Computer Programming 8 [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=3 Bubble Sort ผลลัพธ์

9 BC322 : Computer Programming 9 EX1.การเรียงจากน้อยไปมาก (Bubble) #include void main() {int i, temp, round; int x[5]={9, 7, 5, 3, 1}; printf("The initialized array\n"); for(i=0; i<5; i++) printf("%d", x[i]); printf("\n"); for(round=0; round<5-1; round++) for(i=0; i<5-1-round; i++) { if(x[i]>x[i+1]) { temp = x[i]; x[i] = x[i+1]; x[i+1] = temp; } printf("The ascending-sorted array\n"); for(i=0; i<5; i++) printf("%d", x[i]);printf("\n"); } ผลรัน

10 BC322 : Computer Programming 10 EX2. การเรียงจากมากไปน้อย (Bubble) #include void main() {int i, temp, round; int x[5]={9, 7, 5, 3, 1}; printf("The initialized array\n"); for(i=0; i<5; i++) printf("\n"); for( ) for(i ) { if( ) { } printf("The descending-sorted array\n"); for(i=0; i<5; i++) printf("%d", x[i]);printf("\n"); } ผลรัน

11 BC322 : Computer Programming 11 EX3. การเรียงจากน้อยไปมาก (Bubble) โดยรับค่าอินพุตจากแป้นพิมพ์ (n=5) ผลรัน โดยเขียนโปรแกรมย่อยดังนี้ 1. โปรแกรมย่อยชื่อ Inputdata สำหรับรับตัวเลข เก็บลงอาร์เรย์ num 2. โปรแกรมย่อยชื่อDisplay สำหรับแสดงค่าตัวเลขใน อาร์เรย์ 3.โปรแกรมย่อยชื่อ BubbleSort สำหรับ เรียงลำดับข้อมูลในอาร์เรย์ จากน้อยไปหามาก

12 BC322 : Computer Programming 12 Solution EX3

13 BC322 : Computer Programming 13 Solution EX3(ต่อ)

14 BC322 : Computer Programming 14 การเรียงลำดับ (Sorting): Selection Sort • การทำงานของการเรียงลำดับแบบนี้ เริ่มต้น จะทำการเปรียบเทียบข้อมูลใน ตำแหน่ง [0] กับข้อมูลในตำแหน่งที่ เหลือ เพื่อหาข้อมูลที่น้อยที่สุดมาใส่ แทน • เมื่อหาข้อมูลที่น้อยที่สุดมาใส่ใน ตำแหน่ง [0] เรียบร้อยแล้ว ต่อไปก็ทำ การเปรียบเทียบ ข้อมูลในตำแหน่ง [1] กับตำแหน่งที่เหลือ เพื่อหาข้อมูลที่ น้อยเป็นลำดับต่อมาใส่ในตำแหน่ง [1] • ทำต่อไปเรื่อยๆ จนครบ

15 BC322 : Computer Programming 15 การเรียงลำดับ (Sorting): Selection Sort [0][0] [1][1] [2][2] [3][3] [4][4] [X][X] การเรียงลำดับจากน้อยไป มาก - ทำงาน N-1 รอบ (N คือ จำนวนข้อมูล ) - ต้องหาค่าน้อยที่สุดของรอบ นั้น - ค่าน้อยที่สุดในรอบนั้นจะสลับ กับค่าในตำแหน่งแรกของรอบ นั้น

16 BC322 : Computer Programming [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=0 Selection Sort

17 BC322 : Computer Programming 17 [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=1 * Selection Sort

18 BC322 : Computer Programming 18 [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=2 ** Selection Sort

19 BC322 : Computer Programming 19 [0][0] [1][1] [2][2] [3][3] [4][4] รอบที่ i=3 *** ผลลัพธ์ Selection Sort

20 BC322 : Computer Programming 20 #include void main() {int i, j, min, temp, x[5]; for(i=0; i<5; i++) { printf("Enter num: "); scanf("%d", &x[i]); } printf("The initialized array\n\n"); for(i=0; i<5; i++) printf("%d ", x[i]); printf("\n\n\n\n\n"); for (round= 0; round < 5-1; i++) { min = round; for (i = round+1;i < 5;ij++) { if (x[i] < x[min]) min = i; } temp = x[i]; x[i] = x[min]; x[min] = temp; } printf("The ascending-sorted array\n\n"); for(i=0; i<5; i++) printf("%d ", x[i]);printf("\n\n\n\n\n"); } EX4.การเรียงจากน้อยไปมาก (Selection) ผลรัน

21 BC322 : Computer Programming 21 Ex5 จงเขียนโปรแกรมเพื่อรับค่า ตัวอักษร 5 ตัว เพื่อนำตัวอักษร เรียงลำดับข้อมูลจากมากไปหาน้อย ตัวอย่างการรับค่าและแสดงผล Please enter charater1: F Please enter charater2: A Please enter charater3: X Please enter charater4: M Please enter charater5: S ======================= Sort by descending … X S M F A ใช้กระดาษเส้นด้านหลังเขียนโปรแกรมค่ะ

22 BC322 : Computer Programming 22 Ex5 จงเขียนโปรแกรมเพื่อรับอายุ และเกรดเฉลี่ย ของนักศึกษา 5 คน แล้วเรียงข้อมูลทั้งหมดตาม อายุจากน้อยไปหามาก ตัวอย่างผลรัน Student1 Please enter age : 20 Please enter weight : 49.8 ==================== Student2 Please enter age : 18 Please enter weight : 50.5 ==================== Student3 Please enter age : 22 Please enter weight : 60.9 ==================== Student4 Please enter age : 17 Please enter weight : 58.4 ==================== Student5 Please enter age : 21 Please enter weight : 56.0 ==================== Summary of student data… =============== Age Weight =============== ===============

23 BC322 : Computer Programming 23 ใช้กระดาษเส้นด้านหลังเขียนโปรแกรมค่ะ โดยเขียนโปรแกรมย่อยดังนี้ 1.Inputdata รับค่า 2.SelectionSort เรียงลำดับข้อมูล 3.Report แสดงผลลัพธ์


ดาวน์โหลด ppt BC322 : Computer Programming 1 BC322 ครั้งที่ 11 การเรียงลำดับข้อมูล(Sorting)

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


Ads by Google