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

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

การจัดเรียงข้อมูล Sorting.

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


งานนำเสนอเรื่อง: "การจัดเรียงข้อมูล Sorting."— ใบสำเนางานนำเสนอ:

1 การจัดเรียงข้อมูล Sorting

2 ความหมาย การจัดเรียงลำดับ (Sorting) หมายถึงการจัดเรียงข้อมูล ให้เรียงลำดับตามเงื่อนไขที่กำหนดไว้ (มากไปน้อย หรือ น้อยไปมาก) ในกรณีที่ข้อมูลในแต่ละ Record มีหลาย Field เราต้องพิจารณาเลือก Field ที่สนใจเพื่อใช้ในการเรียงลำดับ เช่น การจัดเรียงลำดับประวัตินักศึกษา อาจใช้หมายเลขประจำตัวของนักศึกษาเป็น Field โดยเรียงจากน้อยไปมาก เป็นต้น

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

4 วิธีการจัดเรียงข้อมูล
การจัดเรียงแบบแลกเปลี่ยน (Exchange Sort) การจัดเรียงแบบแทรก (Insertion Sort) การจัดเรียงแบบเลือก (Selection Sort)

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

6 ตัวอย่าง Function การจัดเรียงแบบ Bubble

7 ตัวอย่าง: Bubble Sort 44 55 12 42 94 18 06 67 ข้อมูล 8 ตัวทำ 7 รอบ รอบที่ ข้อมูล

8 int main() { int A[ELEMENTS]={44,55,12,42,94,6,18,67}; int x; cout<<"NON SORTED LIST:"<<endl; for(x=0;x<ELEMENTS;x++) cout<<A[x]<<endl; } exchange_sort(A,ELEMENTS); cout<<endl<<"SORTED LIST"<<endl; for(x=1;x<=ELEMENTS;x++) return 0; #include <iostream.h> #define ELEMENTS 8 void exchange_sort(int x[],int length) { int temp; for(int i=0;i<length;i++) for (int j=length;j>i;j--) if(x[j-1]>x[j]) temp=x[j-1]; x[j-1]=x[j]; x[j]=temp; }

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

10 ตัวอย่าง Function การเรียงแบบ Insertion

11 ตัวอย่าง:Insertion Sort
44 55 12 42 94 18 06 67 ตัวอย่าง:Insertion Sort ข้อมูล 8 ตัวทำ 7 รอบ รอบที่ ข้อมูล

12 int main() { int A[ELEMENTS]={44,55,12,42,94,06,18,67}; int x; cout<<"NON SORTED LIST:"<<endl; for(x=0;x<ELEMENTS;x++) cout<<A[x]<<endl; } insertion_sort(A,ELEMENTS); cout<<endl<<"SORTED LIST"<<endl; return 0; #include <iostream.h> #define ELEMENTS 8 void insertion_sort(int x[],int length) { int key,i; for(int j=1;j<length;j++) key=x[j]; i=j-1; while(x[i]>key && i>=0) x[i+1]=x[i]; i--; } x[i+1]=key;

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

14 ตัวอย่าง Function การเรียงแบบ Selection

15 ตัวอย่าง:Selection Sort
44 55 12 42 94 18 06 67 ตัวอย่าง:Selection Sort ข้อมูล 8 ตัวทำ 7 รอบ รอบที่ ข้อมูล

16 int main() { int A[ELEMENTS]={44,55,12,42,94,6,18,67}; int x; cout<<"NON SORTED LIST:"<<endl; for(x=0;x<ELEMENTS;x++) cout<<A[x]<<endl; } selection_sort(A,ELEMENTS); cout<<endl<<"SORTED LIST"<<endl; for(x=0;x< ELEMENTS;x++) return 0; #include <iostream.h> #define ELEMENTS 8 void selection_sort(int x[],int length) { int k,temp; for(int i=0;i<length;i++) k=i; for (int j=i+1;j< length;j++) if(x[j]< x[k]) k=j; } temp=x[i]; x[i]=x[k]; x[k]=temp;

17 LAB # 1 ให้นักศึกษาทำความเข้าใจกับรูปแบบ และวิธีการเรียงลำดับข้อมูล (Sorting) ทั้ง 3 แบบ และจงแก้ไขโปรแกรมเพื่อให้ได้ Output ทั้ง 3 ข้อที่กำหนดไว้

18 Insertion Sort แทรกจากข้างหลัง
44 55 12 42 94 18 06 67 Insertion Sort แทรกจากข้างหลัง ข้อมูล 8 ตัวทำ 7 รอบ Insert2.cpp รอบที่ ข้อมูล

19 Bubble Sort โดยการไล่จากหน้าไปหลัง
44 55 12 42 94 18 06 67 Bubble Sort โดยการไล่จากหน้าไปหลัง ข้อมูล 8 ตัวทำ 7 รอบ Bubble2.cpp รอบที่ ข้อมูล

20 Selection Sort เลือกตัวที่มีค่ามากที่สุดมาก่อน
44 55 12 42 94 18 06 67 Selection Sort เลือกตัวที่มีค่ามากที่สุดมาก่อน ข้อมูล 8 ตัวทำ 7 รอบ Select2.cpp รอบที่ ข้อมูล


ดาวน์โหลด ppt การจัดเรียงข้อมูล Sorting.

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


Ads by Google