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

Các thuật toán trên mảng hai chiều pptx

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 (258.73 KB, 16 trang )

C
C
á
á
c thu
c thu


t to
t to
á
á
n trên m
n trên m


ng
ng
hai chi
hai chi


u
u
Nguy
Nguy


n Đông H
n Đông H
à


à
Khoa CNTT
Khoa CNTT


ĐH KHTN
ĐH KHTN
N
N


i dung
i dung


Duy
Duy


t m
t m


ng 2 chi
ng 2 chi


u
u



T
T
í
í
nh t
nh t


ng s
ng s


, t
, t
í
í
ch s
ch s




Đ
Đ
ế
ế
m
m



T
T
ì
ì
m ki
m ki
ế
ế
m
m


T
T
ì
ì
m ph
m ph


n t
n t


l
l


n nh

n nh


t, nh
t, nh


nh
nh


t
t
Duy
Duy


t h
t h
ế
ế
t c
t c
á
á
c ph
c ph


n t

n t


c
c


a m
a m


ng
ng
1 1 2 2 5
7 5 4 2 5
7 8 9 3 8


M
M


ng a[3][5]:
ng a[3][5]:


so_dong = 3;
so_dong = 3;



so_cot = 5;
so_cot = 5;
Duy
Duy


t h
t h
ế
ế
t c
t c
á
á
c ph
c ph


n t
n t


c
c


a m
a m



ng
ng
for(i = 0; i < so_dong; i++)
for(j = 0; j < so_cot; j++)
{
/* Xử lý phần tử a[i][j] */

}
Duy
Duy


t c
t c
á
á
c ph
c ph


n t
n t


trên c
trên c
ù
ù
ng dòng ho
ng dòng ho



c c
c c


t
t
for(j = 0; j < so_cot; j++)
{
/* Xử lý phần tử a[k][j] */

}
 Duyệt các phần tử trên dòng có chỉ số k
 Duyệt các phần tử trên cột có chỉ số k
for(i = 0; i < so_dong; i++)
{
/* Xử lý phần tử a[i][k] */

}
Đư
Đư


ng ch
ng ch
é
é
o c
o c



a ma tr
a ma tr


n vuông
n vuông
for(i = 0; i < n; i++)
{
/* Xử lý phần tử a[i][i] */

}
 Đường chéo chính
 Đường chéo phụ
for(i = 0; i < n; i++)
{
/* Xử lý phần tử a[n-1-i][i] */

}
T
T
í
í
nh t
nh t


ng c
ng c

á
á
c ph
c ph


n t
n t


trên 1 dòng
trên 1 dòng
int tong = 0;
for(j = 0; j < so_cot; j++)
{
tong = tong + a[k][j]
}
 Tính tổng các phần tử trên dòng chỉ số k
T
T
í
í
nh t
nh t


ng c
ng c
á
á

c s
c s


ch
ch


n trên đư
n trên đư


ng ch
ng ch
é
é
o ch
o ch
í
í
nh
nh
int Cheo1Chan (int a[5][5])
{
int tong = 0;
for(i = 0; i < 5; i++)
{
if(a[i][i]%2 == 0)
tong = tong + a[i][i];
}

return tong;
}


T
T
í
í
nh t
nh t


ng c
ng c
á
á
c s
c s


ch
ch


n trên đư
n trên đư


ng ch
ng ch

é
é
o ch
o ch
í
í
nh
nh
T
T
í
í
nh t
nh t
í
í
ch c
ch c
á
á
c s
c s


l
l


trên đư
trên đư



ng ch
ng ch
é
é
o ph
o ph


int Cheo2Phu (int a[5][5])
{
int tong = 0;
for(i = 0; i < 5; i++)
{
if(a[i][i]%2 == 1)
tong = tong + a[5-1-i][i];
}
return tong;
}


T
T
í
í
nh t
nh t



ng c
ng c
á
á
c s
c s


l
l


trên đư
trên đư


ng ch
ng ch
é
é
o ph
o ph


T
T
í
í
nh t
nh t

í
í
ch c
ch c
á
á
c s
c s


l
l


trên đư
trên đư


ng ch
ng ch
é
é
o ph
o ph


int Cheo2Phu (int a[5][5])
{
int tong = 0;
int i,j;

for(i = 0; i < 5; i++)
{
if(a[i][i]%2 == 1)
tong = tong + a[5-1-i][i];
}
return tong;
}


T
T
í
í
nh t
nh t


ng c
ng c
á
á
c s
c s


l
l


trên đư

trên đư


ng ch
ng ch
é
é
o ph
o ph


Đ
Đ
ế
ế
m c
m c
á
á
c s
c s


dương trong ph
dương trong ph


n tam gi
n tam gi
á

á
c ph
c ph
í
í
a trên
a trên
đư
đư


ng ch
ng ch
é
é
o ch
o ch
í
í
nh
nh
int TamGiacTrenDuong (int a[5][5])
{
int dem = 0;
int i,j;
for(i = 0; i < 5; i++)
for(j = 0; j < 5; j++)
{
if(i <= j && a[i][j] > 0)
dem++;

}
return dem;
}


S
S


d
d


ng 1 bi
ng 1 bi
ế
ế
n đ
n đ
ế
ế
m đ
m đ


ghi nh
ghi nh


n s

n s


ph
ph


n t
n t


th
th


a đi
a đi


u ki
u ki


n
n


Đi
Đi



u ki
u ki


n c
n c


a c
a c
á
á
c ph
c ph


n t
n t


ph
ph
í
í
a trên đư
a trên đư


ng ch

ng ch
é
é
o ch
o ch
í
í
nh l
nh l
à
à
i >j
i >j


Đi
Đi


u ki
u ki


n s
n s


dương l
dương l
à

à
a[i][j] > 0
a[i][j] > 0
T
T
ì
ì
m ki
m ki
ế
ế
m
m
#define SIZE 5
int TimTrenCheo2 (int a[SIZE][SIZE], int x)
{
int i,j;
for(i = 0; i < SIZE; i++)
for(j = 0; j < SIZE; j++)
{
if(i+j<=SIZE-1 && a[i][j] == x)
return 1;
}
return 0;
}


T
T
ì

ì
m xem m
m xem m


t s
t s


x c
x c
ó
ó
xu
xu


t hi
t hi


n trong ph
n trong ph


n tam gi
n tam gi
á
á
c ph

c ph
í
í
a
a
trên đư
trên đư


ng ch
ng ch
é
é
o ph
o ph


c
c


a m
a m


ng hay không
ng hay không
T
T
ì

ì
m ph
m ph


n t
n t


l
l


n nh
n nh


t trong m
t trong m


ng
ng
#define SIZE 5
int LonNhat (int a[SIZE][SIZE])
{
int i,j;
int max = a[0][0];
for(i = 0; i < SIZE; i++)
for(j = 0; j < SIZE; j++)

{
if(a[i][j] > max)
max = a[i][j];
}
return max;
}


Duy
Duy


t qua t
t qua t


t c
t c


c
c
á
á
c ph
c ph


n t
n t



, d
, d
ù
ù
ng m
ng m


t bi
t bi
ế
ế
n max đ
n max đ


lưu tr
lưu tr


gi
gi
á
á
tr
tr



l
l


n nh
n nh


t
t
T
T
ì
ì
m ph
m ph


n t
n t


l
l


n nh
n nh



t trong m
t trong m


ng
ng
#define SIZE 5
int LonNhat (int a[SIZE][SIZE])
{
int i,j;
int max = a[0][0];
for(i = 0; i < SIZE; i++)
for(j = 0; j < SIZE; j++)
{
if(a[i][j] > max)
max = a[i][j];
}
return max;
}


Duy
Duy


t qua t
t qua t


t c

t c


c
c
á
á
c ph
c ph


n t
n t


, d
, d
ù
ù
ng m
ng m


t bi
t bi
ế
ế
n max đ
n max đ



lưu tr
lưu tr


gi
gi
á
á
tr
tr


l
l


n nh
n nh


t
t
B
B
à
à
i t
i t



p
p


Chương
Chương
5: 6,7,8,9
5: 6,7,8,9

×