Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 2: Mảng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (520.66 KB, 10 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Lecturer: PhD. Ngo Huu Phuc


Tel: 0438 326 077


Mob: 098 5696 580


Email:



<b>C</b>

<b>ấu trúc dữ liệu và giải thuật</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>Bài 2. M</b>

<b>ảng</b>



<b>N</b>

<b>ội dung:</b>



1.

Khái ni

ệm về mảng.



2.

Bi

ểu diễn mảng 1 chiều (1D).



3.

Bi

ểu diễn mảng 2 chiều (2D).



4.

Các phép toán trên m

ảng 1D.



5.

Các phép toán trên m

ảng 2D.


<b>Tham kh</b>

<b>ảo:</b>



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>2.1. Khái ni</b>

<b>ệm về mảng (1/2)</b>



<i><b>M</b></i>

<i><b>ảng</b></i>

là c

ấu trúc dữ liệu do

<b>người dùng định nghĩa</b>

,


<b>kích thước cố định </b>

<b>đồng nhất</b>

.



Theo tính ch

ất

<i><b>đồng nhất</b></i>

, các thành ph

ần có cùng kiểu, được



g

ọi là

<i><b>element type</b></i>

ho

ặc

<i><b>base type</b></i>

.




Theo tính ch

ất có

<i><b>kích thước cố định</b></i>

, ta khơng th

ể thay đổi



kích thước của mảng khi đang sử dụng.



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>2.1. Khái ni</b>

<b>ệm về mảng (2/2)</b>



Các thành ph

ần của mảng được truy cập thông qua

<i><b>ch</b></i>

<i><b>ỉ số</b></i>

,


ch

ỉ số là số nguyên để chỉ vị trí của thành phần đó trong



m

ảng.



Như vậy, một mảng được hình thành bởi một cặp

<i><b>(value, </b></i>


<i><b>index)</b></i>

;



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>2.2. Bi</b>

<b>ểu diễn mảng 1 chiều (1D) (1/3)</b>



M

ảng được thể hiện trong bộ nhớ bằng

<i><b>ánh x</b></i>

<i><b>ạ tuần </b></i>


<i><b>t</b></i>

<i><b>ự</b></i>

.



Đặc tính cơ bản của ánh xạ tuần tự cho mỗi phần tử của



m

ảng có “khoảng cách” cố định với phần tử đầu của mảng.



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6></div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>2.2. Bi</b>

<b>ểu diễn mảng 1 chiều (1D) (3/3)</b>



Địa chỉ của

<i><b>ph</b></i>

<i><b>ần tử đầu tiên </b></i>

trong m

ảng được


g

ọi là địa chỉ cơ sở (

<i><b>base address </b></i>

- LB).



Địa chỉ của phần tử thứ

<i><b>i</b></i>

được xác định:




<b>Base address + offset of the ith element from </b>


<b>base address</b>



trong đó,

<i>offset</i>

được tính:



<i><b>Offset of the ith element = number of elements </b></i>


<i><b>before the ith * size of each element</b></i>

.



N

ếu LB là

<b>lower bound</b>

(c

ận dưới), offset



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b>2.3. Bi</b>

<b>ểu diễn mảng 2 chiều (2D) (1/5)</b>



M

ảng 2 chiều có thể được hiểu thơng qua mảng



1D, trong đó, mỗi phần tử của nó là mảng 1D



<i><b>M</b></i>

<i><b>ảng của Mảng</b></i>

.



M

ảng 2D có thể xem là 1 cột của các hàng


Cách bi

ểu diễn này được gọi là

<i>row-major </i>



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9></div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>2.3. Bi</b>

<b>ểu diễn mảng 2 chiều (2D) (3/5)</b>



Địa chỉ của phần tử tại

<i><b>hàng i</b></i>

,

<i><b>c</b></i>

<i><b>ột j</b></i>

được xác định:



<b>addr(a[i, j]) = ( number of rows placed before ith row * </b>


<b>size of a row) + (number of elements placed before the </b>


<b>jth element in the ith row * size of element)</b>



trong đó:




Number of rows placed before ith row = (i – LB1), v

ới LB1 là lower


bound c

ủa chiều thứ nhất.



Size of a row = number of elements in a row * a size of element.


Number of elements in a row = (UB2 – LB2+1), v

ới UB2 và LB2 là



c

ận trên và cận dưới của chiều thứ 2.



<i><b>Như vậy</b></i>

:



</div>

<!--links-->

×