More Related Content
PPT
การวิเคราะห์อัลกอริทึม(algorithm analysis) PPT
อัลกอริทึมและการวิเคราะห์ปัญหา PDF
การเขียนผังงาน(Flowchart) PDF
อัลกอริทึมและการวิเคราะห์ปัญหา PPT
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม PDF
PPTX
บทที่4การกำหนดและวิเคราะห์ปัญหา PPTX
What's hot
DOC
PPT
PPT
PPT
PPT
PDF
การเขียนผังงาน (Flowchart) PPT
PDF
หลักการเขียนผังงาน(Flow chart) Viewers also liked
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
สรุปสาระสำคัญทฤษฎีกราฟเบื้องต้น Similar to 22
PDF
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ PPT
DOC
ความหมายของเทคโนโลยีสารสนเทศ PDF
PPT
PPTX
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ PDF
PDF
PDF
PDF
PDF
PDF
PPT
ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์ PDF
กระบวนการเทคโนโลยีสารสนเทศ PDF
PDF
PPTX
03 โครงสร้างและผังงานโปรแกรม PDF
PDF
PDF
ความหมายของเทคโนโลยีสารสนเทศ More from Meaw Sukee
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
22
- 1.
หนวยทีี่ 2
ความรูเบืองตนเกีี่ยวกัับอัลกอริิทม
ื้ ั ึ
- 2.
ความรููเบื้องตนเกี่ยวกับอัลกอริทึม
• อัลกอริทึม (Algorithm) คือ ขันตอนในการแกปญหาอยางมีขั้นตอน
อลกอรทม คอ ขนตอนในการแกปญหาอยางมขนตอน
้
มีเปาหมายและมีแนวทางในการปฏิบัติอยางชัดเจน
- 3.
ลักษณะของอัลกอริทึม
• อัลกอริทึมแบบแตกยอย (Divide-and-conquer)เปนอัลกอริทึมที่
อลกอรทมแบบแตกยอย (Divide and conquer) เปนอลกอรทมท
มีการนําปญหาหลักที่ไดมาทําการแยกออกเปนปญหายอยๆ แลว
รวมกน ั
• อัลกอริทึมแบบเคลือนที่ (Dynamic Algorithm) เปนการแกปญหา
่
ยอยๆ เพียงครั้งเดียวแลวเก็บผลลัพธไว หากแกไขปญหายอยซ้า
ํ
อีก ก็นําคําตอบที่เคยคํานวณเก็บไวมาใชได
• อัลกอริทึมแบบทางเลือก (Greedy Algorithm) เปนอัลกอริทึมหา
คํําตอบโดยทางเลืือกทีี่ดีที่สุด
โ
- 4.
- 5.
- 6.
- 7.
เหตผลที่ตองใชผงงาน
ุ ั
• เนื่องจากผังงานเปนภาพ จะมองเห็นการทํางานของโปรแกรมได
เนองจากผงงานเปนภาพ จะมองเหนการทางานของโปรแกรมได
อยางดี
• ผังงานจะทําหนาที่เสมือนเปนเอกสารประกอบโปรแกรม สามารถ
ใชสื่อสารระหวางโปรแกรมเมอรดวยกัน
• ผังงานอนุญาตใหโปรแกรมเมอรทดสอบโปรแกรมไดหลายๆ
ตรวจสอบการทางาน กอนเขยนโปรแกรม
ตรวจสอบการทํางาน กอนเขียนโปรแกรม
- 8.
ขอเสียของการใชผงงาน
ั
• การสรางผังงานจะตองใชเวลานาน
การสรางผงงานจะตองใชเวลานาน
• ผังงานโครงสรางจะแสดงวิธีการนําขอมูลเขาจนถึงขอมูลออก แตไม
แสดงเหตุผลของการทํางานในแตละขันตอน
้
• การสรางผังงาน โปรแกรมเมอรจะสรางโดยการนึกคิดเอาเอง
- 9.
- 10.
การเขียนขันตอนวิธี
้ ว
• การเขียนผังงาน เปนการทํางานแบบเชิงเสน หรือการทํางานแบบ
การเขยนผงงาน เปนการทางานแบบเชงเสน หรอการทางานแบบ
ลําดับ ไมเปนโครงสราง การทํางานจะเริ่มตังแตจุดเริ่มตนไปจนถึง
้
จุดสิ้ สด เหมาะกบโปรแกรมสนๆ ไ ั
สนสุ ั โป สั้ ไมซบซอน
• การพัฒนาตรรกะโปรแกรมที่ทํางานซับซอน จะเขียนในรูป
อัลกอริทึม (ขั้นตอนวิธี) หรือเรียกวา รหัสเทียม (Pseudo code)
- 11.
- 12.
- 13.
คว มสมพนธของขนตอนก รทงาน
ความสัมพันธของขันตอนการทําง น
้
• โครงสรางที่มีการทํางานแบบเลือกทํา
โครงสรางทมการทางานแบบเลอกทา
(Selection Proecss)
จะทํํางานแบบใหเลือกทํําอยางใดอยาง
ใ ื ใ
หนึ่ง
- 14.
คว มสมพนธของขนตอนก รทงาน
ความสัมพันธของขันตอนการทําง น
้
• การทํางานแบบเลือกทําไดหลายทาง คอ ทางานจากการพจารณาเงอนไข
การทางานแบบเลอกทาไดหลายทาง คือ ทํางานจากการพิจารณาเงื่อนไข
ตางๆ ที่มากกวา 2 ทาง โดยใหเลือกทําอยางใดอยางหนึ่งเทานั้น
- 15.
คว มสมพนธของขนตอนก รทงาน
ความสัมพันธของขันตอนการทําง น
้
• การทํางานแบบทําซ้ํา ในขณะทเงอนไข
การทางานแบบทาซา ในขณะที่เงื่อนไข
เปนจริง (While –do Process) จะทา
ํ
การตรวจสอบ งอนไขของการทางาน
การตรวจสอบเงื่อนไขของการทํางาน
กอนการทํางานทุกครั้ง จะทํางาน
เฉพาะเงื่อนไขที่เปนจริง
ฉพ งอนไขท ปนจรง
- 16.
คําสั่งเทียม (Pseudo Code)
)
• คําสั่งเทียม (Pseudo code) เปนเครื่องมือใชอธิบายรายละเอียดของ
คาสงเทยม เปนเครองมอใชอธบายรายละเอยดของ
อัลกอริทึม (ขั้นตอนวิธี) การทํางาน โดยจะอธิบายดวยชุดคําสั่งที่ใกลเคียง
กบภาษามนุษย ซึ่งชดคําสั่งตามรปแบบไวยากรณ
กับภาษามนษย ซงชุดคาสงตามรูปแบบไวยากรณ (Syntax) ของ
ภาษาคอมพิวเตอรใดๆ ตามความตองการ
- 17.
ตัวอยาง ขั้นตอนการทํางาน (Algorithm)
g )
• 1 รับคาขอมลเปนตัวเลข
1. รบคาขอมูลเปนตวเลข
• 2. ตรวจสอบวาตัวเลขทีไดมีคาเปนอยางไร โดยที่
่
– ถามีคาเปนศูนย ใหพิมพคาวา “Zero”
ํ
– ถาไมมีคาเปนศููนย ใหตรวจสอบวาตัวเลขนั้นเปนเลขจํานวนบวกหรือไม
• ถาเปน ใหพิมพคาวา “Positive”
ํ
• ถาไมเปน
ถาไมเปน ใหพมพคาวา “Negative”
ใหพิมพคําวา “N ti ”
• 3. สิ้นสุดการทํางาน
- 18.
- 19.
- 20.
การวิเคราะหอลกอริทึม
ั
• การคนหา (Searching) คือ การหาตําแหนงของขอมลที่ตองการ
การคนหา คอ การหาตาแหนงของขอมูลทตองการ
หรือขอมูลที่ตรงกับเงื่อนไขที่กําหนด
• การเพิม (Inserting) คือ การเพิ่มขอมูลใหมเขาไปในโครงสราง
่
ขอมูล
• การลบ (Deleting) คือ การลบขอมูลที่ตองการจากโครงสรางขอมูล
• การจัดเรีียง ( i ) คือ การจััดเรีียงขอมูล
ั (Sorting) ื
• การเมิรจ (Merging) คือ การรวมขอมูล 2 ชุดเขาดวยกัน
- 21.
การวัดประสิทธิภาพของอัลกอริทมและ Big-O Notation
ึ g
• สาเหตที่ตองวัดประสิทธิภาพ เพอการตดสนใจเลอกอลกอรทมทมี
สาเหตุทตองวดประสทธภาพ เพื่อการตัดสินใจเลือกอัลกอริทึมที่ม
การทํางานที่เร็วกวา
• Big –O Notation ฟงกชันวัดประสิทธิภาพอัลกอริทึม
สามารถใชฟงกชนมาตรฐานทําการเปรียบเทียบกับฟงกชัน f(n)
ั
Log, n, n, nlog n, n2, n2 ,…, nk ,2n , n!
- 22.
ขั้นตอนการเปลียน f(n) มาใชbig-O Notation
่ ) g
• 1 ปรับคาของฟงกชันที่ไดจากการประมวลผลใหอยในรปสัมประสิทธิ์
1. ปรบคาของฟงกชนทไดจากการประมวลผลใหอยู นรูปสมประสทธ
อยางงาย
• 2. ตัดคาของตัวประกอบออกโดยใหอยูในรูปแบบฟงกชันมาตรฐาน
• 3. เลือกรููปแบบฟงกชันจากฟงกชันมาตรฐาน Log, n, n, nlog n, n2, n2
,…, nk ,2n , n! ซึ่งจัดเรียงตามรอบการทํางานที่นอยที่สุดไปถึงรอบการ
ทํางานที่มากที่สุด
- 23.
วิเคราะหประสิทธิภาพของอัลกอริทึม
ประสิทธิภาพของ รูปแบบ Big-o จํานวนรอบ เวลาในการทํางาน
ฟงกชน
ั
ลอการิทม ึ O(log n) 1.4 Microsecond
เสนตรง (linear)
เสนตรง (li ) O(n)
O( ) 1,000
1 000 0.01 วนาท
0 01 วินาที
ลอการิทมเชิงเสน
ึ O(n(log n)) 14,000 0.2 วินาที
กําลังสอง
ล อ O(n2)
( 1,0002
,000 1.5-2.0 วินาที
0 วน
โพลิโนเมียน O(nk) 1,000k ชั่วโมง
เอ็กซโพแนนเชียล O(cn) 21,000 ใชเวลามาก ไมสามารถระบุได
แนนอน
แฟกทอเรียล O(n!) 1,000! ใชเวลามาก ไมสามารถระบุได
แนนอน