Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม สัปดาห์ที่แล้ว ชนิดของข้อมูล เชิงเดี่ยว เชิงโครงสร้าง โปรแกรมแบบมีโครงสร้างที่ดี การประเมินผลโปรแกรม และการจัดสรรหน่วยความจำ อย่าลืมส่งการบ้านอาจารย์ Ref: อ.สังเวียน สิทธิเวช sungwian@yahoo.com
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม โครงสร้างข้อมูลแบบอะเรย์ (Array Data Structure) โครงสร้างของอะเรย์ คุณลักษณะของอะเรย์ การเรียงข้อมูลในอะเรย์ การค้นข้อมูลในอะเรย์ โครงสร้างของอะเรย์ขนาดต่าง ๆ (ขนาด 1,2,3 มิติ) อะเรย์ในโปรแกรมภาษา Visual Basic การเก็บข้อมูลแบบระเบียน (record)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม โครงสร้างของอะเรย์ กลุ่มของข้อมูลชนิดเดียวกัน เรียงกันอยู่อย่างมีแบบแผน เข้าหาค่าข้อมูลโดยการอ้างตำแหน่ง subscript จำนวนมิติของอะเรย์ หรือ array dimension
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม ลักษณะของอะเรย์ ชื่อของอะเรย์ ขนาดของอะเรย์แต่ละช่อง และมิติของอะเรย์ ค่าสูงสุด (upper bound) และค่าต่ำสุด (lower bound) ในแต่ละมิติ Dim A(1 to 50) As String
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม ตัวอย่าง A (-5, 10) ชื่ออะเรย์ A array name ค่าต่ำสุด -5 lower bound (l) ค่าสูงสุด 10 upper bound (u) จำนวนช่องของอะเรย์ สูตรคือ A (l,u) = u-l+1 จำนวนช่องของอะเรย์ = 10 – (-5) + 1 = 16 ช่อง
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเรียงข้อมูลในอะเรย์ (array sorting) จำนวนคำสั่งที่ต้องใช้ N2 ครั้ง กรณีอะเรย์ขนาด 10 ช่อง จะต้องทำการประมวลผล = 10x10 ครั้ง เรียกว่า selection sort การค้นข้อมูลในอะเรย์ (array searching) จำนวนการเทียบเท่ากับ N ครั้ง เรียกว่า linear search
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บอะเรย์ในคอมพิวเตอร์ อะเรย์ขนาด 1 มิติ การเข้าถึงข้อมูล (ในระดับโปรแกรมเมอร์) A(1), A(2), A(3), … , A(n) การเข้าถึงข้อมูล (ในระดับ system programmer) Address A(i) = address A(1) + C(i-1)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม …. A(i) A(n-1) A(n) มีจำนวน= i-1 ค่า, ระยะทาง=C(i-1) Array A(n)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บอะเรย์ในคอมพิวเตอร์ อะเรย์ขนาด 2 มิติ รูปแบบของการเข้าถึงข้อมูล A(1:M, 1:N) Array A มีจำนวนค่า= M แถว, N คอลัมน์ A(1,1) A(1,2) A(1,3) A(1,N) A(2,1) A(2,2) A(2,N) A(3,1) A(3,N) A(M,1) A(M,N)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บอะเรย์ในคอมพิวเตอร์ 2 มิติ (ต่อ) เก็บแบบ row major หรือ lexicographic order ลักษณะการเก็บจะนับเรียงเป็นแถวต่อ ๆ กันไป A(1,1), A(1,2), … A(1,N) A(2,1), A(2,2), … A(2,N) A(3,1) … A(M,1) … A(M,N) การเข้าถึงข้อมูล แต่ละแถวจะมีความยาวของเนื้อที่ = C * N จำนวน byte ของข้อมูลแต่ละตัว (C) * จำนวนสมาชิกในแต่ละแถว (N)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บอะเรย์ในคอมพิวเตอร์แบบ 2 มิติ (ต่อ) การเข้าถึงข้อมูลในตำแหน่ง A(i,j) แถวที่ 1 แถวที่ 2 แถวที่ i-1 แถวที่ i. แถวที่ M ตำแหน่ง 1 - N ตำแหน่งที่ 1 ตำแหน่งที่ j ตำแหน่งที่ j-1 Address A(I,j) = address A(1,1) + C(i-1)N + C(j-1)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บอะเรย์ในคอมพิวเตอร์แบบ 2 มิติ (ต่อ) เก็บข้อมูลแบบ column major การเก็บข้อมูลจะเรียงกันดังนี้ A(1,1), A(2,1), A(3,1) … A(M,1) A(1,2), A(2,2), A(3,2) … A(M,2) … A(1,N), A(2,N), A(3,N) … A(M,N) ใช้กับโปรแกรมบางภาษา เช่น ภาษา FORTRAN
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บอะเรย์ในคอมพิวเตอร์ อะเรย์ขนาด 3 มิติ รูปแบบของการเข้าถึงข้อมูล A(1:M,1:N,1:L) M L N
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บอะเรย์ในคอมพิวเตอร์แบบ 3 มิติ (ต่อ) การเก็บข้อมูลทำได้ทั้งแบบ row major และ column major ลำดับการเก็บค่าจะเป็นดังนี้ A(1,1,1), A(1,1,2), A(1,1,3), … A(1,1,L) A(1,2,1), A(1,2,2), A(1,2,3), … A(1,2,L) A(1,N,1), A(1,N,2), A(1,N,3), … A(1,N,L) A(M,N,1), A(M,N,2), A(M,N,3), … A(M,N,L) Address A(i,j,k)= addr(1,1,1) + C(i-1)MN + C(j-1)N + C(k-1) หาแบบ 3 มิติ หาแบบ 2 มิติ หาแบบ 1 มิติ
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การใช้อะเรย์ในโปรแกรมภาษา Visual Basic การกำหนดอะเรย์ Dim A(100) as String อะเรย์แบบคงที่และไม่คงที่ Dim A(1 to 100) as String การลบข้อมูลออกจากอะเรย์ Erase A
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การใช้อะเรย์ในโปรแกรมภาษา Visual Basic การกำหนดอะเรย์ Dim A(100) as String
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การใช้อะเรย์ในโปรแกรมภาษา Visual Basic (ต่อ) อะเรย์แบบคงที่และไม่คงที่ Dim A(1 to 100) as String Redim A(50) Redim A(25,25)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การใช้อะเรย์ในโปรแกรมภาษา Visual Basic (ต่อ) การลบข้อมูลออกจากอะเรย์ Erase A
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บข้อมูลแบบระเบียน (record) เป็นข้อมูลเชิงโครงสร้าง ในภาษาระดับสูงส่วนใหญ่จะมี High level programming language COBOL, RPG, PL/1, Pascal, C, VB เป็นแนวทางการสร้างระบบฐานข้อมูล Database Management Oracle, DB2, Access, …
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บข้อมูลแบบระเบียน (record) (ต่อ) สมาชิก แต่ละตัวจะมีชนิด (Data type) แตกต่างกันได้ โครงสร้าง สมาชิกแต่ละตัวมีชื่อกำกับ เรียกว่า ฟิลด์ (field) การดำเนินการเกี่ยวกับระเบียน การดึงค่ามาใช้ (retrieve) การปรับเปลี่ยนหรือกำหนดค่าให้ (update)
Data Structure and Algorithm โครงสร้างข้อมูลและอัลกอริทึม การเก็บข้อมูลแบบระเบียน (record) (ต่อ) No. Field name Data type Size 1 Student-ID Numeric 7 2 Name Character 40 3 Birthday Date 12