Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
Advertisements

บทที่ 2 รหัสควบคุมและการคำนวณ
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรม
บทที่ 3 ลำดับและอนุกรม (Sequences and Series)
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon DSP3-1 ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ DSP 5 The Discrete.
ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon DSP3-1 ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ DSP 6 The Fast.
Functional Programming
Data Structures and Algorithms
บทเรียนคอมพิวเตอร์ช่วยสอน (CAI)
ทฤษฎีจำนวนเบื้องต้น โดย ครูภรเลิศ เนตรสว่าง โรงเรียนเทพศิรินทร์
ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์
ความหมายเซต การเขียนเซต ลักษณะของเซต.
การประยุกต์สมการเชิงเส้นตัวแปรเดียว
หน่วยที่ 1 ระบบคอมพิวเตอร์
ฟังก์ชัน ฟังก์ชันเป็นรูปแบบหนึ่งของความสัมพันธ์ แต่มีกฎเกณฑ์มากกว่านั่นคือ ถ้า f เป็นความสัมพันธ์ หรือเราสามารถเขียนฟังก์ชัน f ในอีกรูปแบบหนึ่งคือ.
ฟังก์ชัน ฟังก์ชันเป็นรูปแบบหนึ่งของความสัมพันธ์ แต่มีกฎเกณฑ์มากกว่า
แบบฝึกหัด (drill and Practice)
ระบบเลข และการแทนรหัสข้อมูล
SCC : Suthida Chaichomchuen
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
CHAPTER 1 Major Sources of Errors in Numerical Methods
Introduction to Digital System
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
ระบบจำนวนเต็ม โดย นางสาวบุณฑริกา สูนานนท์
บทที่ 11 การเขียนโปรแกรมภาษาซี
ตัวดำเนินการ(Operator)
โครงสร้างข้อมูลแบบคิว
โปรแกรมคำนวณค่าไซน์ (Sine)
คุณสมบัติการหารลงตัว
ค33211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 5
ค33211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 5
จำนวนเต็มกับการหารลงตัว
ค31211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 1
สัปดาห์ที่ 7 การแปลงลาปลาซ The Laplace Transform.
การวิเคราะห์วงจรโดยใช้ฟูริเยร์
วิชาคณิตศาสตร์พื้นฐาน รหัสวิชา ค ครูผู้สอน นางสาวสมใจ จันทรงกรด
ฟังก์ชันเอกซ์โพเนนเชียล
บทเรียนสาระการเรียนรู้คณิตศาสตร์ โดยใช้โปรแกรม Microsoft Multipoint
บทที่ 3 การวิเคราะห์ Analysis.
โครงสร้างข้อมูลคืออะไร ?
หลักการเขียนโปรแกรม ( )
Introduction : Principle of Programming
โปรแกรมฐานข้อมูลที่นิยมใช้
ตัวดำเนินการ และนิพจน์คณิตศาสตร์
ง เทคโนโลยีสารสนเทศและการสื่อสาร ระบบเลขฐาน
หลักการและวิธีการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
กลวิธีการสอนคณิตศาสตร์ระดับประถมศึกษา
Chapter 04 Flowchart ผู้สอน อ.ยืนยง กันทะเนตร
หลักการเขียนโปรแกรม ( )
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ อ.วีระ คงกระจ่าง
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การแก้ปัญหาโปรแกรม (Flowchart)
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
โครงสร้างข้อมูลแบบลิงก์ลิสต์
หลักการเขียนโปรแกรม ( )
Introduction TO Discrete mathematics
สื่อการสอนด้วยโปรมแกรม “Microsoft Multipoint”
บทที่ 1 จำนวนเชิงซ้อน.
ตัวแปร และชนิดข้อมูล.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
โครงสร้างข้อมูลแบบ สแตก (stack)
Summations and Mathematical Induction Benchaporn Jantarakongkul
ทบทวนการแก้สมการเชิงเส้นตัวแปรเดียว
ลิมิตและความต่อเนื่องของฟังก์ชัน
CHAPTER 2 Operators.
หลักการทั่วไปเกี่ยวกับการเขียนโปรแกรม
ใบสำเนางานนำเสนอ:

Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์ ณัฐพล ชัยทวิชธานันท์ E-mail : nattapol_ctwtn@yahoo.com 13-102-252 : อัลกอริธึมส์ ( Algorithms ) ภาควิชาเทคโนโลยีคอมพิวเตอร์ คณะศึกษาทั่วไป มหาวิทยาลัยเทคโนโลยีราชมงคลล้านนา วิทยาเขตพิษณุโลก ภาคการศึกษาที่ 1 ปีการศึกษา 2549

จุดประสงค์การสอน (Objective) ทำความรู้จักพื้นฐานของโครงสร้างข้อมูล ทำความรู้จักพื้นฐานของอัลกอริธึมส์

หัวข้อ (Topics) ความหมายของโครงสร้างข้อมูลและอัลกอริธึมส์ ประเภทของโครงสร้างข้อมูล คุณสมบัติของอัลกอริธึมส์ พื้นฐานทางคณิตศาสตร์ ลำดับและอนุกรม รหัส Pseudo

ความหมายของโครงสร้างข้อมูลและอัลกอริธึมส์ โครงสร้างข้อมูล หมายถึง การรวมประเภทข้อมูล (Data Type) เข้าไว้ด้วยกันจนกระทั่งกลายเป็นกลุ่มประเภทข้อมูลและมีการกำหนด คำนิยามของความสัมพันธ์ภายในกลุ่มข้อมูลไว้อย่างชัดเจน อัลกอริธึมส์ หมายถึง ลำดับขั้นตอนวิธีในการทำงานของโปรแกรม เพื่อแก้ปัญหาใดปัญหาหนึ่ง ซึ่งเมื่อเราปฏิบัติตามขั้นตอนอย่างถูกต้อง จะทำให้สามารถแก้ปัญหาได้ตามที่ต้องการ

ประเภทของโครงสร้างข้อมูล โครงสร้างข้อมูลสามารถแบ่งตามลักษณะใหญ่ๆ ได้เป็น 2 ประเภท ได้แก่ 1. โครงสร้างข้อมูลแบบเชิงเส้น (Linear Structure) โครงสร้างที่มีการจัดเก็บข้อมูลในลักษณะต่อเนื่องกัน ถ้าทราบ ตำแหน่งแรกของข้อมูลก็สามารถทราบตำแหน่งข้อมูลตัวถัดไปหรือ ข้อมูลตัวอื่นได้ ทางคณิตศาสตร์จะเรียกว่า เวกเตอร์ (Vector) ข้อมูลมี ลักษณะเป็น 1 มิติ เช่น อาเรย์, สแตก, คิว, ลิสต์

ประเภทของโครงสร้างข้อมูล 100 200 300 400 D(1) D(2) D(3) D(4) อาเรย์ (Array) D(5) D(4) D(3) D(2) In Out D(1) โครงสร้างของสแตก

ประเภทของโครงสร้างข้อมูล D(1) D(2) D(3) D(4) D(5) Out In คิว (queue) D1 D2 D3 Dn Header ลิสต์ โครงสร้างของลิสต์

ประเภทของโครงสร้างข้อมูล 2. โครงสร้างข้อมูลแบบไม่เชิงเส้น (Non-Linear Structure) โครงสร้างที่ไม่มีคุณสมบัติของเชิงเส้น สามารถใช้แสดงความ สัมพันธ์ของข้อมูลที่ซับซ้อนได้มากกว่าโครงสร้างข้อมูลแบบเชิงเส้น เช่น ทรี, กราฟ

พื้นฐานทางคณิตศาสตร์ (con.) เนื้อหาด้านอัลกอรึธึมส์จำเป็นต้องใช้พื้นฐานทางคณิตศาสตร์ โดย ส่วนใหญ่จะเน้นไปที่หลักการของ Discrete Mathematic โดยหัวข้อที่ยก มานี้จะเป็นเพียงส่วนหนึ่งที่มีการใช้งานกันบ่อยๆ ซึ่งประกอบไปด้วย - เลขยกกำลังและฟังก์ชั่น Exponential - ฟังก์ชั่น Logarithm - ฟังก์ชั่น Factorial - การ Modular

พื้นฐานทางคณิตศาสตร์ (con.) เลขยกกำลังและฟังก์ชั่น Exponential ความสัมพันธ์ที่เกี่ยวข้องกันของเลขยกกำลังกับฟังก์ชั่น Exponential คือ ฟังก์ชั่น Exponential เป็นส่วนหนึ่งของเลขยกกำลัง และมีคุณสมบัติ หลายข้อที่ต้องอาศัยพื้นฐานของเลขยกกำลังมาเป็นองค์ประกอบ

พื้นฐานทางคณิตศาสตร์ (con.) ทฤษฏีที่เกี่ยวข้องกับเลขยกกำลัง ถ้า a, b เป็นจำนวนจริง โดยที่ a≠0, b≠0 และ m, n เป็นจำนวนเต็ม 1. aman = am + n 2. (am) n = amn 3. (ab) m = ambm 4. (a/b) m = am/bm 5. am/an = am - n

พื้นฐานทางคณิตศาสตร์ (con.) ทฤษฏีที่เกี่ยวข้องกับฟังก์ชั่น Exponential ถ้า a, b เป็นจำนวนจริงบวก โดยที่ a≠1, b≠1 และ x, y เป็นจำนวน จริง, ตัวแปร หรือนิพจน์ทางคณิตศาสตร์ 1. กฏของเลขยกกำลัง (Exponent Laws) 1.1 axay = am + n 1.2 (ax) x = axy 1.3 (ab) x = axbx 1.4 (a/b) x = ax/bx 1.5 am/an = am - n

พื้นฐานทางคณิตศาสตร์ (con.) 1.6 a-x = 1/ax 1.7 a0 = 1 2. ax = ay ก็ต่อเมื่อ x = y 3. ถ้า x≠0 แล้ว ax = by ก็ต่อเมื่อ a = b

พื้นฐานทางคณิตศาสตร์ (con.) ฟังก์ชั่น Logarithms ฟังก์ชั่น Logarithm เป็นส่วนกลับกันของ ฟังก์ชั่น Exponential คือ โดเมนของ ฟังก์ชั่น Exponential กลายเป็นเรนจ์ (Range) ของฟังก์ชั่น Logarithms ในทางกลับกันเรนจ์ของฟังก์ชั่น Exponential จะกลายเป็น โดเมนของฟังก์ชั่น Logarithm

พื้นฐานทางคณิตศาสตร์ (con.) ทฤษฏีที่เกี่ยวข้องกับฟังก์ชั่น Logarithms กำหนด M, N, a และ b เป็นจำนวนจริงบวก โดยที่ a≠1, b≠1และ มี n เป็นจำนวนจริงแล้ว สามารถสรุปได้ ดังนี้ 1. loga MN = loga M + loga N 2. loga M/N = loga M - loga N 3. loga 1 = 0 4. loga Mn = nloga M 5. loga a = 1

พื้นฐานทางคณิตศาสตร์ (con.) 6. loga M = loga N ก็ต่อเมื่อ M=N 7. loga M = logb M / logb a 8. a loga M = M 9. logan M = 1/n loga M 10. log1/a M = - loga M 11. loga M = 1/ logMa เมื่อ M ≠ 1

พื้นฐานทางคณิตศาสตร์ (con.) ฟังก์ชั่น Factorial ค่า Factorial n (n Factorial) หมายถึง ผลคูณของจำนวนเต็มบวก ตั้งแต่ 1 ถึง n เมื่อ n เป็นจำนวนเต็มบวกใดๆ เช่น factorial 8 มีค่า เท่ากับ 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 เป็นต้น หรือ factorial n คือ ผลคูณของ จำนวนเต็มบวก n กับจำนวนที่ลดลงจาก n ทีละ 1 จนกระทั่งถึง 1 นั่นเอง โดยสัญลักษณ์ที่กำหนด คือ n! n! = n x (n-1) x (n-2) x (n-3) x … x 2 x 1 หรือ n! = 1 x 2 x 3 x … x (n-1) x n

พื้นฐานทางคณิตศาสตร์ (con.) การ Modular การ Modular จะคล้ายกันกับการหาร (Division) แต่จะแตกต่างจาก การหารตรงที่ผลลัพธ์ของการคำนวณ โดยที่ Modular เป็นเศษที่เหลือจาก การหาร กำหนดให้ a เป็นจำนวนเต็ม และ m เป็นจำนวนเต็มบวกแล้ว ค่า a mod n มีค่าเท่ากับเศษที่เหลือจากการหาร a ด้วย m

ลำดับและอนุกรม ลำดับ (Sequence) คือ ฟังก์ชั่นที่มีโดเมนเป็นเซตของจำนวนเต็มบวก เขียนแทนด้วย n แบ่งเป็น 2 ประเภท คือ 1. ลำดับจำกัด คือ ลำดับที่มีโดเมนเป็นเซตของจำนวนเต็มบวก n ตัว แรก เช่น 1, 2, 3, 4, …, n 2. ลำดับอนันต์ (Infinite Sequence) คือ ลำดับที่มีโดเมนเป็นเซตของ จำนวนเต็มบวก จนกระทั่งถึงอนันต์ เช่น 1, 2, 3, 4, … (ไม่ทราบพจน์ สุดท้าย)

ลำดับและอนุกรม (con.) อนุกรม (Series) คือ ผลรวมของพจน์ทุกพจน์ของลำดับนั้นๆ ใช้ สัญลักษณ์ ∑ ตัวการแทนสัญลักษณ์เขียนได้ดังนี้ 1+2+3+4+…+n = ∑ i = ∑ n

รหัส Pseudo รหัส Pseudo จะมีลักษณะคล้ายภาษาอังกฤษ ก้ำกึ่งระหว่างภาษา อังกฤษกับภาษาคอมพิวเตอร์ใช้ในการอธิบายลักษณะโครงสร้างข้อมูล และการทำงานของอัลกอริธึมส์ที่เราเขียนขึ้น Open file linesPrint = 0 Loop (not end of file) read file if (full page) from feed add 1 to PageNumber Write page heading write report line