หน่วยที่ 2 Introduction to Algorithm Analysis

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
เฉลย (เฉพาะข้อแสดงวิธีทำ)
Advertisements

การผลิตบ่อพัก ทำเอง ใช้เอง หจก. มภัสกาญ คอนสตรัคชั่น
อสมการเชิงเส้นตัวแปรเดียว
โรงเรียนนวมินทราชินูทิศ เตรียมอุดมศึกษาพัฒนาการ
PHPPHP การเขียนโปรแกรมคอมพิวเตอร์ 1 สาขาวิชาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ.
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
ชื่อผู้สอน : นางฐิติมา พิริยะ
เป็นหลักสำคัญในการนำเสนอเนื้อหา ของบทเรียนคอมพิวเตอร์ช่วยสอนก็คือ ควร นำเสนอภาพที่เกี่ยวข้องกับเนื้อหา ประกอบ กับคำอธิบายสั้นๆ ง่ายๆ แต่ได้ใจความ การใช้ภาพประกอบจะทำให้ผู้เรียน.
คอมพิวเตอร์ช่วยสอน (CAI)
Entity-Relationship Model E-R Model
คณิตศาสตร์พื้นฐาน ค ชั้นมัธยมศึกษาปีที่ 3 โดย ครูชำนาญ ยันต์ทอง
วิทยาลัยเทคโนโลยีบริหารธุรกิจอยุธยา
สื่อการสอนด้วยโปรมแกรม “Microsoft Multipoint”
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
หน่วยที่ 5 การเวียนเกิด
การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
หน่วยที่ 6 แถวลำดับ (Array)
หน่วยที่ 6 กราฟ (Graphs)
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
หลักการแก้ปัญหา อย่างมีขั้นตอน การแก้ปัญหาด้วย กระบวนการทาง เทคโนโลยี สารสนเทศ หลักการ แก้ปัญหา การใช้หลักการใน การแก้ปัญหา.
การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ ครูชาญณรงค์ ปานเลิศ โรงเรียนพระบางวิทยา ครูชาญณรงค์
เรื่อง กระบวนการเทคโนโลยีสารสนเทศ
หน่วยที่ 1 ปริมาณทางฟิสิกส์ และเวกเตอร์
อาจารย์อภิพงศ์ ปิงยศ Lab 05 : Microsoft Excel (Part3) พท 260 เทคโนโลยีสารสนเทศและการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์ ปิงยศ.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การใช้หม้อแปลงไฟฟ้า อย่างมีประสิทธิภาพ.
การใช้ Social Media เพื่อการสื่อสาร
อนุกรมอนันต์และการลู่เข้า
แผนที่และเครื่องมือทางภูมิศาสตร์
บทที่ 5 เครื่องมือสืบค้นข้อมูล (Search Engine)
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
แนวทางการออกแบบโปสเตอร์
Vernier เวอร์เนียร์ คือเครื่องมือที่ใช้วัดระยะ (distance) หรือ ความยาว (length) ให้ได้ค่าอย่างละเอียด เวอร์เนียร์ต่างจากไม้บรรทัดทั่วๆไป เพราะมี 2 สเกล.
ประเภทแผ่นโปร่งใส (แผ่นใส) รายวิชา ออปแอมป์และลิเนียร์ไอซี
เรื่อง ความพึงพอใจต่อการให้บริการห้องสมุด
One Point Lesson (OPL).....บทเรียนประเด็นเดียว
สัญญาณและระบบ (SIGNALS AND SYSTEMS)
ผลปฏิบัติงานในรอบ TOR 2/60 กุมภาพันธ์ – กรกฎาคม 2560
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
พื้นฐานการออกแบบ กราฟิก หมายถึง ศิลปะแขนงหนึ่งซึ่งใช้การสื่อความหมาย ด้วยเส้น สัญลักษณ์ รูปวาด ภาพถ่าย กราฟ แผนภูมิ การ์ตูน ฯลฯ เพื่อให้สามารถสื่อความหมายของข้อมูลได้ถูกต้องตรง.
Object-Oriented Programming การเขียนโปรแกรมเชิงอ็อบเจ็กต์
Data storage II Introduction to Computer Science ( )
World Time อาจารย์สอง Satit UP
บริษัท พัฒนาวิชาการ (2535) จำกัด
บทที่ 9 การทำซ้ำ (Loop).
SMS News Distribute Service
สมการพหุนาม ที่มีความซับซ้อนมากขึ้น
สร้างภูมิคุ้มกัน (แสงหิ่งห้อย)
เอกสารประกอบการสอน รายวิชา ประติมากรรมเพื่อการพาณิชย์ (Commercial Sculpture) โดย อาจารย์สันติสุข แหล่งสนาม ภาคการศึกษาที่ 2/2559.
Data storage II Introduction to Computer Science ( )
Data Structures and Algorithms 2/2561
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
Power Flow Calculation by using
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
ยิ้มก่อนเรียน.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
02/08/62 การศึกษาพลังงานทางเลือกจากมูลช้างทำถ่านอัดแท่ง สู่ชุมชนท้องถิ่นในเขตจังหวัดสุรินทร์ The Study of Alternative Fuel From Elephant Dung Made Bar.
การบริหารจัดการระบบสารสนเทศ (ระบบงานสารบรรณอิเล็กทรอนิกส์)
การเติบโตของฟังก์ชัน (Growth of Functions)
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
บทที่ 5 พัลส์เทคนิค
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 03: ขั้นตอนวิธีและการวิเคราะห์ขั้นตอนวิธี Dr.Surasak.
ทายสิอะไรเอ่ย ? กลม เขียวเปรี้ยว เฉลย ทายสิอะไรเอ่ย ? ขาว มันจืด เฉลย.
กำหนดการเชิงเส้น : การแก้ปัญหาด้วยวิธีกราฟ
นวัตกรรม หน่วยไตเทียม.
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

หน่วยที่ 2 Introduction to Algorithm Analysis กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี

สัญกรณ์เชิงเส้นกำกับ (Asymptotic notation) สัญลักษณ์ที่ใช้อธิบายการเติบโตของฟังก์ชั่น โดยในการวิเคราะห์อัลกอริทึมจะนำสัญกรณ์นี้มาใช้ในการระบุประสิทธิภาพของอัลกอริทึม การวิเคราะห์เชิงเส้นกำกับ เป็นการศึกษาพฤติกรรมของอัตราการเติบโตของฟังก์ชันเวลาการทำงานของโปรแกรม เมื่อ n (จำนวนอินพุท) มีค่ามากขึ้นเรื่อย ๆ กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

สัญกรณ์เชิงเส้นกำกับ (Asymptotic notation) ตัวอย่างเช่น ถ้าต้องการเปรียบเทียบฟังก์ชัน 1000n กับ 0.1n2 จากรูป จะเห็นว่า 1000n ให้ค่ามากกว่า 0.1n2 เมื่อ n<=10000 แต่เมื่อ n>10000 ฟังก์ชัน 0.1n2 จะให้ค่ามากกว่าเสมอ ทั้งนี้เพราะ n2 มีอัตราการเติบโตที่เร็วกว่า n1 มาก กราฟแสดงอัตราการเติบโตของฟังก์ชัน 1000n กับ 0.1n2 กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

สัญกรณ์โอใหญ่ (Big-O notation : O) นิยาม O(f(n)) = { t(n) โดยที่ 0 ≤ t(n) ≤ cf(n) } เป็นเซตของฟังก์ชั่นทั้งหมดที่โตเร็วกว่า t(n) เป็นขอบบนของฟังก์ชั่นนั้น ๆ ตัวอย่าง ความหมายของ O(n) คือ ฟังก์ชั่นนั้น ๆ ใช้เวลาทำงานช้าที่สุด ≤ n เช่น อัลกอริทึม a1 มีประสิทธิภาพเป็น O(n2) ถ้า n = 10 แล้ว a1 จะใช้เวลาทำงานช้าที่สุด 100 หน่วยเวลา (รับประกันว่าไม่ช้าไปกว่านี้ - แต่อาจจะเร็วกว่านี้ได้) กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

โอเมก้าใหญ่ (Big-Omega notation : Ω) นิยาม Ω(f(n)) = { t(n) โดยที่ 0 ≤ cf(n) ≤ t(n) } เป็นเซตของฟังก์ชั่นทั้งหมดที่โตช้ากว่า t(n) เป็นขอบล่างของฟังก์ชั่นนั้น ๆ ตัวอย่าง ความหมายของ Ω(n) คือ ฟังก์ชั่นนั้น ๆ ใช้เวลาทำงานเร็วที่สุด ≥ n เช่น อัลกอริทึม a1 มีประสิทธิภาพเป็น Ω(n) ถ้า n = 10 แล้ว a1 จะใช้เวลาทำงานเร็วที่สุด 10 หน่วยเวลา (รับประกันว่าไม่เร็วไปกว่านี้ - แต่อาจจะช้ากว่านี้ได้) กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

เตต้าใหญ่ (Big-Teta notation : Ө) นิยาม f(n) = Ө(g(n)) ก็ต่อเมื่อ f(n) = O(g(n)) และ f(n) = Ω(g(n)) ขอบบนและขอบล่างเป็นฟังก์ชั่นเดียวกัน สังเกตว่า ขอบบน กับ ขอบล่าง เป็นฟังก์ชั่นเดียวกัน สัมประสิทธิ์ต่างกัน ความหมายของเตต้าคือ ใช้เวลาทำงาน = n กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

โอเล็ก (Little-o : o) นิยาม o(f(n)) = { t(n) โดยที่ 0 ≤ t(n) < cf(n) } ต่างจาก Big-O ตรงที่ Little-o จะไม่แตะขอบบน นั่นคือ ฟังก์ชั่นนี้ ทำงานช้าที่สุดไม่ถึง เช่น หากเรามี t(n) = n0.98 + 0.05√n เราสามารถเขียนได้เป็น O(n) หรือ o(n) แต่หากระบุเป็น Little-o จะเน้นให้เห็นชัดว่าไม่ถึง n (เพราะค่ากำลังของ n คือ 1 แต่ในฟังก์ชั่น t(n) ค่ากำลังของ n คือ 0.98) กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

โอเมก้าเล็ก (Little-omega : ω) นิยาม ω(f(n)) = { t(n) โดยที่ 0 ≤ cf(n) < t(n) } ต่างจาก Big-omega ตรงที่ Little-omega จะไม่แตะขอบล่าง นั่นคือ ฟังก์ชั่นนี้ทำงานเร็วที่สุดมากกว่า n กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

สรุปสัญลักษณ์ O(n) o(n) ω(n) Ω(n) กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

การหา Big-O ใช้เทอมที่มีค่ามากที่สุดหรือโตเร็วที่สุดในฟังก์ชั่น รูปแบบของฟังก์ชั่นที่มักพบบ่อยได้แก่ exponential อยู่ในรูป an polynomial อยู่ในรูป na linear อยู่ในรูป n logarithmic อยู่ในรูป log a n ทั้ง 4 รูปแบบ จะมีอัตราการเติบโตเรียงจากมากไปหาน้อย กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

เทอมที่โตเร็วที่สุดในฟังก์ชั่น Ө(n2) Ө(n log n) เวลาในการทำงานทั้งหมดถูกกำหนดโดยส่วนที่ 1 เพราะมันโตเร็วกว่า กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

เทอมที่โตเร็วที่สุดในฟังก์ชั่น ตัวอย่าง 1 for i = 1 to n c+=A[i] หมุน n รอบ ใช้เวลาเป็น O(n) เป็น elementary operation ใช้เวลาคงที่เป็น O(1) ตัวอย่าง 2 for i = 1 to n for j = n to 2 c+=x[i][j] O(n) O(n2) กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

ตัวอย่างการหา Big-O สมมติให้ f1 = 49n3+600n+1024 f2 = n+4n2+n log n+32894 วิธีการหา Big-O - ตัดสัมประสิทธิ์และค่าคงที่ออก - เลือกเทอมที่ใหญ่ที่สุด เป็นตัวแทนของฟังก์ชั่น ดังนั้น f1 = n3+n = O(n3) f2 = n+n2+n log n = O(n2) กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

กราฟแสดงการเติบโตของฟังก์ชั่น กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์

มาตรวัดประสิทธิภาพสำหรับ Big O notation จากมากไปน้อย กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์