array

Array

1.อาร์เรย์

โครงสร้างชนิดนี้ใช้เก็บข้อมูลชนิดเดียวกันที่มีขอบเขตจำกัดและมีขนาดคงที่โครงสร้างข้มูลชนิตนี้จะ
เรียกใช้ข้อมูลได้ค้อนข้างเร็วเนื่องจากมีที่อยู่ค่งที่การเรียกใช้ข้อมูลในแต่ละตำแหน่งจะใช้เวลาเท่ากัน 
ตัวอย่างเช่นมีอาร์เรย์อยู่ 1 อาร์เรย์มี  15 ช่องการเรียกใช้ข้อมูลช่องที่ 1 จะใช้เวลาเท่ากันกับการเรียกใช้
ข้อมูลช่อง ที่ 10  
สมาชิกในอาร์เรย์ เรียกว่า “คอมโปเนนต์” และสมาชิกเหล่านี้เก็บในแถวลำดับแบบอันดับ คือ 
สมาชิกตัวที่ 1 สมาชิกตัวที่ 2 ,..., สมาชิกทั้งหมดในแถวลำดับต้องเป็นชนิดเดียวกัน ดังนั้นสามารถกำหนด
แถวลำดับของจำนวนจริง แถวลำดับของจำนวนเต็ม

2. ประเภทของอารเรย์

  1. อาเร์เรย์ 1 มิติ
  2. อาเร์เรย์ 2 มิติ
  3. อาเร์เรย์ 3 มิติ
แต่วันนี้เราจะพูดถึงแค่อาร์เรย์ 1 และ 2 เท่านั้น


    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)

               แทนค่า  Address A(2)  = 15 + 5 * (2-(0))   = 25


    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 คือ ขนาดของหน่วยความจำที่ใช้เก็บข้อมูลแต่ละตัว

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การจัดเรียงข้อมูล Sort

Graph