งานนำเสนอ PowerPoint - Dr. Skul Kamnuanchai

Download Report

Transcript งานนำเสนอ PowerPoint - Dr. Skul Kamnuanchai

ึ ษาโครงสร ้างข ้อมูล
การศก
และอัลกอริทม
ึ
• แนวความคิดเกีย
่ วกับอัลกอริทม
ึ
– ความเป็ นนามธรรมของอัลกอริทม
ึ
• การแสดงอัลกอริทม
ึ
– การแสดงอัลกอริทม
ึ ผ่านผังงาน
– การแสดงอัลกอริทม
ึ ผ่านรหัสเทียม
• โครงสร ้างข ้อมูล
– พืน
้ ฐานเกีย
่ วกับโครงสร ้างข ้อมูล
– ระดับของความเป็ นนามธรรมของข ้อมูล
• บทสรุป
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
1
ึ ษาโครงสร ้างข ้อมูล
การศก
และอัลกอริทม
ึ
ึ ษาถึงโครงสร ้างข ้อมูล
• การศก
ึ ษาถึงรูปแบบการเก็บข ้อมูลใน
– เป็ นศก
หน่วยความจาของระบบคอมพิวเตอร์
่ แถวลาดับ ลิสต์
– ตัวอย่างโครงสร ้างข ้อมูล เชน
ี กราฟ เป็ นต ้น
สแตก คิว ต ้นไม ้ พจนานุกรม ฮป
ึ ษาถึงอัลกอริทม
• การศก
ึ
ึ ษาถึงกระบวนการทางานหรือขัน
– ศก
้ ตอนการ
ดาเนินการใดๆ บนโครงสร ้างข ้อมูล รวมไปถึง
ิ ธิภาพของอัลกอริทม
การวิเคราะห์ประสท
ึ
่ การเรียกตัวเอง การ
– ตัวอย่างอัลกอริทม
ึ เชน
เรียงข ้อมูล เป็ นต ้น
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
2
แนวคิดเกีย
่ วกับอัลกอริทม
ึ
• อัลกอริทม
ึ หมายถึง ชุดของขัน
้ ตอนการกระทาทีม
่ ี
ั เจน สามารถทางานได ้จริง และมี
ลาดับ มีความชด
ิ้ สุดการทางาน
จุดเริม
่ ต ้น และ จุดสน
ื่ ออกมาด ้วยภาษาใดๆ
• อัลกอริทม
ึ หนึง่ ๆ สามารถสอ
่
ก็ได ้ เชน
่ ภาษาไทย อังกฤษ
– ภาษาพูด (Natural Language) เชน
จีน ญีป
่ น
ุ่ เกาหลีฯลฯ
่
– ภาษาโปรแกรม (Programming Language) เชน
C/C++, Java ฯลฯ
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
3
แนวคิดเกีย
่ วกับอัลกอริทม
ึ
• คุณสมบัตข
ิ องอัลกอริทม
ึ
– ประกอบด ้วยชุดของขัน
้ ตอน ทีม
่ ล
ี าดับการ
ั เจน มีโครงสร ้างทีด
ทางานชด
่ แ
ี ละสมบูรณ์
– อัลกอริทม
ึ ประกอบด ้วยขัน
้ ตอนทีส
่ ามารถทางาน
ได ้จริง เพือ
่ ให ้อัลกอริทม
ึ นัน
้ ๆ ทางานได ้
ั เจน ไม่
– อัลกอริทม
ึ ประกอบด ้วยขัน
้ ตอนทีช
่ ด
คลุมเครือ
ิ้ สุด ในการ
– อัลกอริทม
ึ มีจด
ุ เริม
่ ต ้น และ จุดสน
ั เจน
ทางานทีช
่ ด
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
4
แนวคิดเกีย
่ วกับอัลกอริทม
ึ
• โปรแกรมคอมพิวเตอร์สว่ นใหญ่ล ้วนสร ้างขึน
้ มาจาก
อัลกอริทม
ึ ยกเว ้นโปรแกรมประยุกต์ทเี่ กิดขึน
้ จาก
ั เจนแต่
ปั ญญาประดิษฐ์ ซงึ่ ไม่มอ
ี ล
ั กอริทม
ึ ทีช
่ ด
ั การเรียนรู ้จากข ้อมูลอินพุต ทีเ่ คยได ้รับ
อาศย
ั ซอน
้ มีจานวน
• สาหรับอัลกอริทม
ึ ทีด
่ จ
ี ะต ้องไม่ซบ
ั เจน มีขน
ขัน
้ ตอนชด
ั ้ ตอนในการทางานน ้อยทีส
่ ด
ุ
ิ ธิภาพในการทางาน
เท่าทีจ
่ ะเป็ นไปได ้ และมีประสท
สูง
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
5
ความเป็ นนามธรรมของอัลกอริทม
ึ
• อัลกอริทม
ึ มีความเป็ นนามธรรมในตัวเอง ซงึ่
สามารถแสดงให ้เห็นเป็ นรูปธรรมได ้โดยผ่านสงิ่ ที่
เป็ นตัวแทนในการแสดงของอัลกอริทม
ึ นัน
้ ๆ
่ เรื่องราว
• ตัวอย่างของสงิ่ ทีเ่ ป็ นนามธรรม อืน
่ ๆ เชน
ในนิย ายก็ เป็ นส งิ่ ทีเ่ ป็ นนามธรรมแต่ส ามารถแสดง
ื นิยาย
เป็ นรูปธรรมได ้โดยตีพม
ิ พ์ลงในหนังสอ
ื นิยายแล ้ว เรือ
• นอกจากการตีพม
ิ พ์เป็ นหนั งสอ
่ งราว
ในนิยายยังอาจแสดงในรูปของละครโทรทัศน์ หรือ
ภาพยนตร์ก็ได ้
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
6
ความเป็นนามธรรมของอ ัลกอริทม
ึ
ในการพัฒนาโปรแกรมคอมพิวเตอร์ขน
ึ้ มาแก ้ปั ญหา
อย่างใดอย่างหนึง่ ก่อนอืน
่ เราต ้องพัฒนาขัน
้ ตอน
การแก ้ปั ญหาซงึ่ ก็คอ
ื “อัลกอริทม
ึ ” ก่อน แล ้วจึงนา
ขัน
้ ตอนการแก ้ปั ญหาดังกล่าวมาเขียนเป็ นโปรแกรม
จึงกล่าวได ้ว่าโปรแกรมคอมพิวเตอร์เป็ นตัวแทนใน
้
การแสดงอัลกอริทม
ึ ทีใ่ ชในการสร
้างโปรแกรมนัน
้ ๆ
ขึน
้ มา
25 June 2006 12.00 AM
เป็ นทีท
่ ราบกันดีวา่ โปรแกรมคอมพิวเตอร์แต่ละ
โปรแกรม ประกอบด ้วยโพรเซส หลายๆ โพรเซส
โดยทีโ่ พรเซสต่างๆ เป็ นตัวกาหนดกิจกรรมทีต
่ ้อง
เกิดขึน
้ ในระหว่างการกระทาการของโปรแกรม
เปรียบได ้กับขัน
้ ตอนการทางานของอัลกอริทม
ึ
Week 02a - Introduction to Data
Structure II
7
ความเป็นนามธรรมของอ ัลกอริทม
ึ
โปรแกรม (Program) เป็ นตัวแทนอย่างเป็ น
้
ทางการ ทีใ่ ชในการแสดงอั
ลกอริทม
ึ ในการทางาน
หรือแก ้ปั ญหาด ้วยระบบคอมพิวเตอร์
โพรเซส (Process) เป็ นกิจกรรมต่างๆ ทีเ่ กิดขึน
้ ใน
ระหว่างการทางานของโปรแกรม เปรียบได ้กับ
ั เจน
ขัน
้ ตอนทีม
่ ล
ี าดับการทางานชด
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
8
ความเป็นนามธรรมของอ ัลกอริทม
ึ
การแสดงอ ัลกอริทม
ึ ในการพ ับกระดาษ
25 June 2006 12.00 AM
Syntax และ Semantics สาหร ับแสดงอ ัลกอริทม
ึ
Week 02a - Introduction to Data
Structure II
9
ความเป็นนามธรรมของอ ัลกอริทม
ึ
้
Syntax หมายถึงรูปแบบหรือไวยากรณ์ทใี่ ชในการ
ื่ ความหมาย ในทางคอมพิวเตอร์หมายถึงรูปแบบ
สอ
้
การสะกดภาษาทีใ่ ชในการเขี
ยนโปรแกรม
Semantics หมายถึงคาจากัดความ หรือ
้
ความหมายของ Syntax ใชในการแยกระหว่
าง
ความหมายทีแ
่ ท ้จริงของคาสงั่ ในโปรแกรม กับ
รูปแบบ ของคาสงั่
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
10
การแสดงอ ัลกอริทม
ึ
้
Flowchart ซงึ่ ปกติแล ้วมักถูกใชในการแสดง
กระบวนการทางานต่างๆ ผ่านภาพกราฟิ ก
ั ลักษณ์ ทีค
ประกอบด ้วยภาพสญ
่ วามหมายเฉพาะ
้
ตามจุดประสงค์การใชงาน
และมีลก
ู ศรเป็ นตัวแสดง
ทิศทาง
่ ้น/สินสุ
้ ด
เริมต
ตัดสินใจ
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
ทางานปกติ
อินพุท/เอาพุท
11
การแสดงอ ัลกอริทม
ึ
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
Flowchart ของ
่ ้ใน
อัลกอริทม
ึ ทีใช
การคานวณเกรด
่ จารณาจาก12
ซึงพิ
การแสดงอ ัลกอริทม
ึ
Pseudocode เป็ นภาษาคอมพิวเตอร์ทไี่ ม่เป็ น
้
ทางการ สมมติขน
ึ้ เพือ
่ ใชในการอธิ
บายและพัฒนา
อัลกอริทม
ึ
Pseudocode มีลก
ั ษณะคล ้ายกับภาษาอังกฤษทีใ่ ช ้
เป็ นภาษาพูดทัว่ ไป ผสมกับภาษาคอมพิวเตอร์
Pseudocode ไม่สามารถกระทาการ (Execute) บน
้
เครือ
่ งคอมพิวเตอร์ได ้ การใชงานต
้องแปลงเป็ น
ี ก่อน
ภาษาคอมพิวเตอร์ให ้หมดเสย
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
13
การแสดงอ ัลกอริทม
ึ
Algorithm procedure SearchList(list, value)
list – the list on which to perform the search
value – target value of the search
firstEntry – the first entry in the list
testEntry – current entry being tested
Begin
if (list is Empty)
(Show error search failure)
else
{
testEntry = firstEntry
While (value>testEntry and there are some
more entry to be considered)
Do (Select next entry as testEntry)
if (value equals testEntry)
(Show value is found in the List)
else (Show value is not found)
}
End
25 June 2006 12.00 AM
Pseudocode แสดง
อัลกอริทม
ึ ของการ 14
Week 02a - Introduction to Data
Structure II
โครงสร้างข้อมูล
โครงสร้างข้อมูล หมายถึง รูปแบบการจัดเรียง
ข ้อมูลในหน่วยความจาของระบบคอมพิวเตอร์
หน่วยความจาในทีน
่ ห
ี้ มายรวมถึง หน่วยความจา
หลัก (Memory) และ หน่วยความจาสารอง
(Harddisk)
เพือ
่ ให ้ผู ้ใชจั้ ดการข ้อมูลในรูปแบบนามธรรม
(Abstract Organization) แทนทีก
่ ารจัดการข ้อมูล
ในรูปแบบจริงทีเ่ กิดขึน
้ ในคอมพิวเตอร์
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
15
้ ฐานของโครงสร้างข้อมูล
พืน
โครงสร ้างข ้อมูลเป็ นเพียงนามธรรมเท่านัน
้ เราต ้อง
สามารถแยกระดับความเป็ นนามธรรมของโครงสร ้าง
ข ้อมูลได ้ รวมไปถึงวิธก
ี ารอ ้างอิงไปยังโครงสร ้าง
ข ้อมูลเหล่านัน
้
ึ ษาโครงสร ้างข ้อมูล เรามอง
เพือ
่ ให ้ง่ายต่อการศก
หน่วยความจาหลักมีลก
ั ษณะดังนี้
จัดการหน่วยความจาให ้เป็ นลักษณะเซลล์เดีย
่ ว
กาหนดให ้เซลล์ของหน่วยความจามีตาแหน่งทีอ
่ ยู่
ต่อเนือ
่ งกันไป
ให ้มองว่าการจัดการบนหน่วยความจาเป็ นการจัดการที่
กระทาต่อเซลล์นัน
้
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
16
้ ฐานของโครงสร้างข้อมูล
พืน
0FFF
Cell 0
Cell 1
1000
1002
1003
ADT
Cell 3
1004
1005
Cell 4
1006
1007
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
17
ระด ับความเป็นนามธรรมของข้อมูล
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
18
ระด ับความเป็นนามธรรมของข้อมูล
โครงสร ้างข ้อมูลระดับบนสุดประกอบด ้วย Abstract
่ ลิสต์ สแตก
Data Types (ADT) ประเภทต่างๆ เชน
คิว ต ้นไม ้
ADT แต่ละอันอาจสร ้างมาจากชนิดข ้อมูล 2
ประเภทได ้แก่
ข ้อมูลแถวลาดับ (Sequential Representation)
ื่ มโยง (Linked Representation)
ข ้อมูลแบบเชอ
ข ้อมูลแถวลาดับสร ้างมาจากข ้อมูลประเภทอาร์เรย์
ื่ มโยงสร ้างมาจากตัวแปร
ในขณะทีข
่ ้อมูลแบบเชอ
อ ้างอิง
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
19
ระด ับความเป็นนามธรรมของข้อมูล
โครงสร้างข้อมูลแบบคงที่
โครงสร ้างข ้อมูล คงที่ไ ม่ส ามารถเปลี่ย นขนาด
และรูปร่างของโครงสร ้างข ้อมูลได ้
้ เรย์ใน
โครงสร ้างข ้อมูลประเภทนีส
้ ว่ นใหญ่ใชอาร์
การสร ้าง
โครงสร้างข้อมูลแบบพลว ัติ
โ ค ร ง ส ร า้ ง ไ ม่ ค ง ที่ ข น า ด แ ล ะ รู ป ร่ า ง ข อ ง
โครงสร ้างข ้อมูลสามารถเปลีย
่ นแปลงได ้
โครงสร ้างข ้อมูล ประเภทนี้ ส่ว นใหญ่ใ ช ตั้ ว แปร
อ ้างอิงในการสร ้าง
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
20
สรุปแนวคิดของอ ัลกอริทม
ึ
และโครงสร้างข้อมูล
อ ัลกอริทม
ึ หมายถึง ขัน
้ ตอนวิธ ี กระบวนการในการ
ทางานหรือแก ้ปั ญหาอย่างใดอย่างหนึง่
อัลกอริทม
ึ มีความเป็ นนามธรรม ดังนัน
้ ต ้องนาเสนอ
่ ผังงาน หรือ รหัสเทียม
ผ่านตัวแทน เชน
โครงสร้างข้อมูลเป็ นรูปแบบข ้อมูลทีถ
่ ก
ู จัดเก็บอยู่
ในหน่วยความจาของคอมพิวเตอร์ เพือ
่ ให ้การ
ิ ธิภาพ
จัดการง่ายและมีประสท
ระดับความเป็ นนามธรรมของโครงสร ้างข ้อมูลจะ
แตกต่างกันไประหว่างโครงสร ้างข ้อมูลแต่ละ
ประเภท
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
21
การบ ้าน Week 2b
ึ ษาเขียนอัลกอริทม
• ให ้นักศก
ึ ในการเดินทางจากบ ้าน
มายังมหาวิทยาลัย
ึ ษาเขียนอัลกอริทม
• ให ้นักศก
ึ ในการตัดเกรด
ึ ษาเขียนอัลกอริทม
• ให ้นักศก
ึ ในการคานวณ
ภาษี มล
ู ค่าเพิม
่ 7%
25 June 2006 12.00 AM
Week 02a - Introduction to Data
Structure II
22