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

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

Week 12 Engineering Problem 2

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


งานนำเสนอเรื่อง: "Week 12 Engineering Problem 2"— ใบสำเนางานนำเสนอ:

1 Week 12 Engineering Problem 2

2 Outline ทบทวนการใช้อาเรย์ ปัญหาการจัดเรียงข้อมูล
อัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)แบบ pseudo-code ตัวอย่างการทำงานของอัลกอริทึม อัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort) ในภาษา C

3 การประกาศอาเรย์ในภาษา C
type name[elements]; name คือ ชื่ออาเรย์ type หมายถึง ชนิด อาทิเช่น int, float, ฯลฯ และ elements ระบุจำนวนสมาชิกในอาเรย์ ตัวอย่าง int billy[5]; float c[12], x[27];

4 ปัญหาในการจัดเรียงข้อมูล
ปัญหาในการจัดเรียงข้อมูลสามารถกำหนดได้ดังนี้ Input: อาเรย์ A = <a1,a2,a3,…,an> ที่เก็บตัวเลขจำนวนเต็มจำนวนทั้งหมด n ตัว Output: อาเรย์ A = <a’1,a’2,a’3,…,a’n> ที่เก็บตัวเลขจำนวนเต็มจำนวนทั้งหมด n ตัว โดยที่ a’1≤ a’2 ≤ a’3 ≤… ≤ a’n การแก้ปัญหานี้สามารถทำได้หลายวิธี แต่วิธีที่เราจะศึกษามีชื่อเรียกว่าอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort) ข้อมูลนำเข้าเป็นตัวเลขจำนวน n ตัว ข้อมูลนำออกเป็นตัวเลข n ตัวเดิมที่เรียงจากน้อยไปมาก

5 อัลกอริทึมการจัดเรียงข้อมูลแบบแทรก
(Insertion Sort) อธิบายการทำงานโดยใช้ pseudo-code อธิบายการทำงานโดยใช้ pseudo-code

6 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 สมมติว่ามีตัวเลขอยู่ห้าตัวที่ต้องการจะจัดเรียงจากน้อยไปมากโดยใช้อัลกอริทึมจัดเรียงแบบแทรก สมมติว่ามีตัวเลขอยู่ห้าตัวที่ต้องการจะจัดเรียงจากน้อยไปมากโดยใช้อัลกอริทึมจัดเรียงแบบแทรก

7 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 ตัวเลขสีแดงคือตัวเลขที่ต้องการจะเปรียบเทียบกับตัวเลขข้างหน้าเพื่อหาตำแหน่งที่ถูกต้อง ตัวเลขสีแดงคือตัวเลขที่ต้องการจะเปรียบเทียบกับตัวเลขข้างหน้าเพื่อหาตำแหน่งที่ถูกต้อง

8 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6, ,4,2,6,7 เนื่องจาก 4 มากกว่า 1 จึงไม่ต้องมีการย้ายตำแหน่งของ 4 เนื่องจาก 4 มากกว่า 1 จึงไม่ต้องมีการย้ายตำแหน่งของ 4

9 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6, ,4,2,6,7 ตัวเลขถัดมาที่เราจะหาตำแหน่งที่ถูกต้องคือ 2 ตัวเลขถัดมาที่เราจะหาตำแหน่งที่ถูกต้องคือ 2

10 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6, ,4,2,6,7

11 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6, ,4,2,6, ,2,4,6,7 เนื่องจาก 2 น้อยกว่า 4 แสดงว่า 2 ต้องสลับตำแหน่งกับ 4 เนื่องจาก 2 น้อยกว่า 4 แสดงว่า 2 ต้องสลับตำแหน่งกับ 4

12 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 1,4,2,6,7 1,2,4,6,7 1,2,4,6,7 นำ 2 มาเปรียบเทียบกับตัวเลขข้างหน้าคือ 1 ในที่นี้ 2 มีค่ามากกว่า 1 เลข 2 จึงอยู่ในตำแหน่งที่ถูกต้องแล้ว นำ 2 มาเปรียบเทียบกับตัวเลขข้างหน้าคือ 1 ในที่นี้ 2 มีค่ามากกว่า 1 เลข 2 จึงอยู่ในตำแหน่งที่ถูกต้องแล้ว

13 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 1,4,2,6,7 1,2,4,6,7 1,2,4,6,7 พิจารณาตัวเลขถัดมาคือเลข 6 นำเลข 6 ไปเปรียบเทียบกับตัวเลขข้างหน้าคือ เลข 4 พิจารณาตัวเลขถัดมาคือเลข 6 นำเลข 6 ไปเปรียบเทียบกับตัวเลขข้างหน้าคือ เลข 4

14 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 1,4,2,6,7 1,2,4,6,7 1,2,4,6,7 1,2,4,6,7 เนื่องจากเลข 6 มีค่ามากกว่าเลข 4 แล้ว เลข 6 จึงอยู่ในตำแหน่งที่ถูกต้องแล้ว ไม่ต้องสับเปลี่ยนตำแหน่งกับเลข 4 เนื่องจากเลข 6 มีค่ามากกว่าเลข 4 แล้ว เลข 6 จึงอยู่ในตำแหน่งที่ถูกต้องแล้ว ไม่ต้องสับเปลี่ยนตำแหน่งกับเลข 4

15 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 1,4,2,6,7 1,2,4,6,7 1,2,4,6,7 1,2,4,6,7 นำตัวเลขตัวถัดไปคือเลข 7 มาเปรียบเทียบกับตัวเลขข้างหน้าคือ เลข 6 นำตัวเลขตัวถัดไปคือเลข 7 มาเปรียบเทียบกับตัวเลขข้างหน้าคือ เลข 6

16 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 1,4,2,6,7 1,2,4,6,7 1,2,4,6,7 1,2,4,6,7 เนื่องจากเลข 7 มีค่ามากกว่าเลข 6 จึงอยู่ในตำแหน่งที่ถูกต้องแล้ว ไม่ต้องมีการสลับที่ เนื่องจากเลข 7 มีค่ามากกว่าเลข 6 จึงอยู่ในตำแหน่งที่ถูกต้องแล้ว ไม่ต้องมีการสลับที่

17 ตัวอย่างการทำงานของอัลกอริทึมการจัดเรียงแบบแทรก (Insertion Sort)
1,4,2,6,7 1,4,2,6,7 1,2,4,6,7 1,2,4,6,7 1,2,4,6,7 เนื่องจากตัวเลข 7 เป็นตัวเลขตัวสุดท้าย การจัดเรียงจึงสิ้นสุดลงโดยตัวเลขทั้ง 5 ตัวอยู่ในลำดับจากน้อยไปมากตามที่ต้องการ เนื่องจากเลข 7 มีค่ามากกว่าเลข 6 จึงอยู่ในตำแหน่งที่ถูกต้องแล้ว ไม่ต้องมีการสลับที่

18 อัลกอริทึมการจัดเรียงข้อมูลแบบแทรกใน C
สังเกตว่าโค๊ดนี้เหมือนโค๊ดเทียมเป๊ะ เราต้องประกาศขนาดของ array A ให้เกินไว้หนึ่งค่าเพราะเราจะใช้ index ที่อยู่ในช่วง 1 ถึง 20

19 ตัวอย่างการทำงานของโปรแกรม

20 การจัดเรียงข้อมูลที่เป็นสตริง
การจัดเรียงข้อมูลแบบแทรกสามารถใช้กับการจัดเรียงข้อมูลที่ไม่ใช่ตัวเลขได้ด้วย ขอเพียงแต่ให้มีตัวเปรียบเทียบที่บอกว่าข้อมูลที่ให้มาสองอัน = > หรือ < กัน เช่น เราสามารถจัดเรียงข้อมูลสตริงได้ เพราะเราสามารถใช้ฟังก์ชัน strcmp ซึ่งมีรูปแบบ int strcmp(char *string1, char *string2);

21 การเปรียบเทียบสตริงโดยใช้ strcmp
ถ้า string1<string2, ค่าที่ได้จะน้อยกว่า 0 ถ้า string2<string1, ค่าที่ได้จะมากกว่า 0 ถ้า string1=string2, ค่าที่ได้จะเท่ากับ 0


ดาวน์โหลด ppt Week 12 Engineering Problem 2

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


Ads by Google