array
Array
1.อาร์เรย์
โครงสร้างชนิดนี้ใช้เก็บข้อมูลชนิดเดียวกันที่มีขอบเขตจำกัดและมีขนาดคงที่โครงสร้างข้มูลชนิตนี้จะ
เรียกใช้ข้อมูลได้ค้อนข้างเร็วเนื่องจากมีที่อยู่ค่งที่การเรียกใช้ข้อมูลในแต่ละตำแหน่งจะใช้เวลาเท่ากัน
ตัวอย่างเช่นมีอาร์เรย์อยู่ 1 อาร์เรย์มี 15 ช่องการเรียกใช้ข้อมูลช่องที่ 1 จะใช้เวลาเท่ากันกับการเรียกใช้
ข้อมูลช่อง ที่ 10
สมาชิกในอาร์เรย์ เรียกว่า “คอมโปเนนต์” และสมาชิกเหล่านี้เก็บในแถวลำดับแบบอันดับ คือ
สมาชิกตัวที่ 1 สมาชิกตัวที่ 2 ,..., สมาชิกทั้งหมดในแถวลำดับต้องเป็นชนิดเดียวกัน
ดังนั้นสามารถกำหนด
แถวลำดับของจำนวนจริง แถวลำดับของจำนวนเต็ม
2. ประเภทของอารเรย์
- อาเร์เรย์ 1 มิติ
- อาเร์เรย์ 2 มิติ
- อาเร์เรย์ 3 มิติ
2.1 ลักษณะของอาเรย์ 1 มิติ
A
คือ ชื่อของอาร์เรย์ A(l:u) อาจเป็นอะไรก็ได้แต่ในที่นี้ตัวอย่างเป็น num(0:4)
l คือ ดรรชนีกำกับต่ำสุดของอาร์เรย์
(Lower bound)
u คือ ดรรชนีกำกับสูงสุดของอาร์เรย์ (Upper bound)
ตัวอย่างการคำนวณหาจำนวนช่องของอาร์เรย์
1 มิติ
จำนวนช่องของ A(l:u) = u – l + 1
จะได้เป็น num(0:4)= 4 - 0 + 1 = 5
คำนวณหาตำแหน่งที่อยู่ของอาร์เรย์
1 มิติ
สูตร Address A[i] = Address A(i) + C(i-l)
เมื่อ
Address A(i) คือ
ตำแหน่งที่อยู่ของข้อมูลแรกของอาร์เรย์
i คือ อาร์เรย์
ตัวที่ต้องการหาตำแหน่ง
l คือ
ค่าต่ำสุดของดรรชนีกำกับของอาร์เรย์
C คือ
ขนาดของหน่วยความจำที่ใช้เก็บข้อมูลแต่ละตัว
ตัวอย่างที่ จงหาตำแหน่งที่อยู่ของ A(4) และ
A(2) ใน อาร์เรย์ A(0:4)
เมื่อกำหนดให้ A(0) อยู่ที่ 15 ในหน่วยความจำและสมาชิกแต่ละตัวใช้เนื้อที่ 5 Byte
สูตร
Address A(i) = Address A(i) +C(I-L) แทนค่า
Address A(4) = 15 + 5 * (4-(0)) = 35
สูตร Address A(i) = Address A(i) +C(I-L)
2.2 ลักษณะของอาเรย์ 2 มิติ
มีลักษณะการเข้าถึง 2 ลักษณะคือ
2.2.1. อันดับเรียงตามคอลัม(Column
Major Order) จะเข้าถึงข้อมูลโดยคอลัมเป็น
หลักโดยเปลี่ยนแถว(Row)ก่อน
อันดับเรียงตามคอลัม จะเข้าถึงข้อมูลโดยยึดคอลัมเป็นหลักโดยเปลี่ยนแถว(Row) ก่อน
จากภาพข้างบน จะได้ b[0][0] , b[1][0] , b[2][0] ,b[0][1] , b[1][1] , b[2][1] ,
b[0][2] , b[1][2] , b[2][2] , b[0][3] , b[1][3] , b[2][3] .
2.2.2 อันดับเรียงตามแถว (Row Major Order)
จะเข้าถึงข้อมูลโดยยึดแถวเป็นหลักโดยจะเ
ปลี่ยนสดมภ์ก่อน
อันดับเรียงตามแถวจะเข้าถึงข้อมูลโดยยึดแถวเป็นหลักโดยจะเปลี่ยนคอลัมก่อน
จากภาพข้างบน จะได้ b[0][0] , b[0][1] ,b[0][2] , b[0][3] , b[1][0] , b[1][1] ,
b[1][2] , b[1][3] , b[2][0] , b[2][1] ,b[2][2] , b[2][3] .
ฟังก์ชันการคำนวณหาตำแหน่งที่อยู่ของอาร์เรย์
2 มิติตาม (column order major)
สูตร
Address (A(I,J)) = Lo + ((J-L2)*(U1-L1+1)*C) +
((I-L1)*C)
ฟังก์ชันการคำนวณหาตำแหน่งที่อยู่ของอาร์เรย์ 2 มิติตาม (row order major)
สูตร
Address (A(I,J)) = Lo+((I-L1)*(U2-L2+1)*C)+((J-L2)*C) เมื่อ
Lo คือ ตำแหน่งที่อยู่ของข้อมูลแรกของอาร์เรย์
I คือ อาร์เรย์ตัวที่ต้องการหาตำแหน่งใน Row
J คือ อาร์เรย์ตัวที่ต้องการหาตำแหน่งใน Column
L1 คือ ค่าต่ำสุดของดรรชนีกำกับของอาร์เรย์มิติที่ 1
U1 คือ ค่าสูงสุดของดรรชนีกำกับของอาร์เรย์มิติที่ 1
C คือ ขนาดของหน่วยความจำที่ใช้เก็บข้อมูลแต่ละตัว
ความคิดเห็น
แสดงความคิดเห็น