1 / 23

Data Structure and Algorithm

Data Structure and Algorithm. โครงสร้างข้อมูลและอัลกอริทึม. วัตถุประสงค์ หนังสืออ้างอิง แนวทางการเรียนการสอน และการวัดผล สอบกลางภาค 20 % ปลายภาค 50% โครงงาน 15% อื่น ๆ 15%. Ref: อสังเวียน สิทธิเวช. Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม.

Download Presentation

Data Structure and Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม • วัตถุประสงค์ • หนังสืออ้างอิง • แนวทางการเรียนการสอน และการวัดผล • สอบกลางภาค 20% ปลายภาค 50% โครงงาน 15%อื่น ๆ 15% Ref: อสังเวียน สิทธิเวช

  2. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • ชนิดของข้อมูล (Data Type) • ข้อมูลเชิงเดี่ยว • เป็นคุณลักษณะของข้อมูลโดยตรง • ข้อมูลเชิงโครงสร้าง • เป็นลักษณะของการจัดการกลุ่มข้อมูล

  3. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • ข้อมูลเชิงเดี่ยว เป็นลักษณะของข้อมูลโดยตรง ไม่สามารถแยกย่อยได้อีก • จำนวนเต็ม (Integer) • จำนวนจริง (Real) • อักขระ (Character) • ตรรกะ (Logical) • วันที่ (Date) • และอื่น ๆ ขึ้นอยู่กับภาษาของโปรแกรมที่เขียน

  4. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • ข้อมูลเชิงเดี่ยว หมายถึง 3 สิ่ง • ค่าของข้อมูล ตัวเลข ตัวอักษร รูปภาพ • โครงสร้างของข้อมูล ความสัมพันธ์ของข้อมูล • การดำเนินงานของข้อมูล • การกำหนดค่า (assignment) = • การคำนวณ (arithmetic) +, -, *, / • การเปรียบเทียบ (relational) =, <, >, <>, <=,>= • ฟังชั่นที่ใช้ได้ (function) abs, sqrt, round

  5. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • ข้อมูลเชิงโครงสร้าง เป็นโครงสร้างของกลุ่มข้อมูลซึ่งประกอบจากเซตของข้อมูล (component)ซึ่งอาจเป็นข้อมูลเชิงเดี่ยว หรือข้อมูลเชิงโครงสร้างก็ได้ • แถวลำดับ (Array) • ระเบียน (Record) • ไฟล์ (File)

  6. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • วิธีการของข้อมูลแบบคัดย่อ (abstract data type) • ไม่สนใจรายละเอียดว่าจะมีการแทนค่าอย่างไรในหน่วยความจำ (ignore its representation) • ไม่สนใจว่าคอมพิวเตอร์จะดำเนินการอย่างไรเพื่อให้ได้ผลลัพท์ (ignore its implementation) ทำให้เราสร้างข้อมูลอย่างไรก็ได้ตามจินตนาการของเรา สามารถเอาไปใช้ได้ทันที

  7. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • โครงสร้างของข้อมูล แสดงถึงความสัมพันธ์ของข้อมูล • แบบเซต (set) • แบบเชิงเส้น (linear – one to one) • แบบลำดับชั้น(tree/hierarchical – one to many) • แบบกราฟ (graph – many to many)

  8. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • โครงสร้างของข้อมูลแบบ set • โครงสร้างของข้อมูลแบบเชิงเส้น (linear-one to one)

  9. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • โครงสร้างของข้อมูลแบบลำดับชั้น (one to many) • โครงสร้างของข้อมูลแบบกราฟ (many to many)

  10. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การเขียนโปรแกรมแบบโครงสร้าง (Structure programming) • แบบเรียงตามลำดับ (Sequence) • แบบมีการตัดสินใจ (if-then-else) • แบบวงจรปิด (do-while, do-until) • แบบชุดการตัดสินใจ (case)

  11. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การเขียนโปรแกรมแบบโครงสร้าง (Structure programming) • แบบเรียงตามลำดับ (Sequence) a=1 b=2 c=a+b

  12. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การเขียนโปรแกรมแบบโครงสร้าง (Structure programming) • แบบมีการตัดสินใจ (if-then-else) If a=1 then else c=a+b c=b-a

  13. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การเขียนโปรแกรมแบบโครงสร้าง (Structure programming) • แบบวงจรปิด (do-while) ทำขณะเป็นจริง ทดสอบก่อนทำ Do while a < 10 วงจรจะทดสอบค่า a ก่อน ถ้ามีค่าน้อยกว่า 10 จึงจะทำงาน false true a=a+1

  14. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การเขียนโปรแกรมแบบโครงสร้าง (Structure programming) • แบบวงจรปิด (do-until) ทำขณะเป็นเท็จ ตรวจสอบหลังทำ วงจรจะเริ่มทำงานทันทีไม่ว่า a จะมีค่าเท่าใด เมื่อทำเสร็จจึงจะตรวจสอบค่า a ถ้ายังไม่มากกว่า 10 ก็จะกลับไปทำใหม่ จนกว่าค่าจะมากกว่า 10 จริง a=a+1 Do until a > 10 true false

  15. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การเขียนโปรแกรมแบบโครงสร้าง (Structure programming) • แบบชุดการตัดสินใจ (case) case a =1 =2 =3 otherwise คำสั่งนี้จะคล้าย คำสั่ง if ซ้อนกันหลายครั้ง (nested if) คำสั่ง ก คำสั่ง ข คำสั่ง ค คำสั่ง ง

  16. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • รูปแบบของโปรแกรม • Top-down design • เป็นลักษณะเขียนโปรแกรมจากบนลงล่าง ไม่ย้อนกลับไปกลับมา • Sub program/sub routine • กรณีทีต้องทำชุดคำสั่งบางชุดซ้ำ ๆ กันจากเงื่อนไขหลาย ๆ แห่ง ให้ยกชุดคำสั่งนั้นไปเขียนเป็น subprogram หรือ sub routine แล้วเรียกใช้ หากมีการแก้ไขชุดคำสั่งนั้นก็จะได้ทำการแก้ไขเพียงชุดเดียว

  17. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การประเมินผลประสิทธิภาพของโปรแกรม • การใช้เนื้อที่ในหน่วยความจำหลัก • กรณีที่ใช้ตัวแปรค่อนข้างมาก หรือสร้างขนาด array ใหญ่เกินความจำเป็น หรือใช้อัลกอริทึมที่ไม่ถูกต้อง จะทำให้โปรแกรมมีขนาดใหญ่ และเสียเวลาในการประมวลผล • ความเร็วในการประมวลผลอัลกอริทึมของโปรแกรม • การหาค่าใน array ถ้าไม่มีการคำนึงถึงวิธีการหาที่ดีที่สุด จะทำให้การ “วนซ้ำ” ของวงจรมากเกินความจำเป็น ทำให้เสียเวลาในการประมวลผล • การประเมินความเร็วของอัลกอริทึมในรูปของฟังชั่น big-O

  18. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การจัดสรรพื้นที่ในหน่วยความจำ (ในสายตาของนักเขียนโปรแกรม) • รูปแบบเรียงลำดับ (array) Order-lists • รูปแบบพอยน์เตอร์ (pointer) Link-lists

  19. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การจัดสรรพื้นที่ในหน่วยความจำ (ในสายตาของนักเขียนโปรแกรม) เนื้อหา (content)หรือค่าที่เก็บอยู่ในตำแหน่งนั้น ๆ address 5000 5001 5002 5003

  20. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การจัดสรรพื้นที่ในหน่วยความจำ (ในสายตาของนักเขียนโปรแกรม) • รูปแบบเรียงลำดับ (array) Order-lists • การแทนแบบเรียงลำดับ (sequential) • เป็นลักษณะแบบอะเรย์ที่เรียงต่อเนื่องกันไป แต่ละโหนดมี 1 ช่องเก็บข้อมูล • การแทนแบบใช้พ้อยน์เตอร์ (pointer) • เป็นลักษณะการเชื่อมโหนด แต่ละโหนดจะมี 2 ช่อง ช่องแรกเก็บข้อมูล ช่องที่สองเก็บพ้อยน์เตอร์หรือแอดเดรสของโหนดถัดไป โดยจะต้องมีอีกโหนดหนึ่งเรียก headnode เพื่อเก็บแอดเดรสของค่าแรกในลิสต์นั้น ๆ

  21. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การจัดสรรพื้นที่ในหน่วยความจำ • รูปแบบเรียงลำดับ (array) Order-lists • การแทนแบบเรียงลำดับ (sequential) Mon(1) Mon(2) Mon(3) Mon(12)

  22. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การจัดสรรพื้นที่ในหน่วยความจำ • รูปแบบเรียงลำดับ (array) Order-lists • การแทนแบบใช้พ้อยน์เตอร์ (pointer) Head-node

  23. Data Structure and Algorithmโครงสร้างข้อมูลและอัลกอริทึม • การจัดสรรพื้นที่ในหน่วยความจำ (ในสายตาของนักเขียนโปรแกรม) • รูปแบบ Link-lists • เป็นการสร้างการ link โดยผู้ใช้เอง โดยกำหนดเองทั้งข้อมูล และการ link • ข้อมูลแต่ละรายการจะมี link บอกถึงตำแหน่งข้อมูลถัดไป 1 2 3 4 5 6 7 Head-node Data(7) Link(7)

More Related