Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
1
1
C
C
Ấ
Ấ
U TR
U TR
Ú
Ú
C D
C D
Ữ
Ữ
LI
LI
Ệ
Ệ
U NÂNG CAO
U NÂNG CAO
N
N
ộ
ộ
i
i
dung
dung
chương
chương
tr
tr
ì
ì
nh
nh
Chương
Chương
1:
1:
S
S
ắ
ắ
p
p
x
x
ế
ế
p
p
ngo
ngo
ạ
ạ
i
i
Chương
Chương
2:
2:
B
B
ả
ả
ng
ng
băm
băm
Chương
Chương
3:
3:
Cây
Cây
đ
đ
ỏ
ỏ
đen
đen
Chương
Chương
4:
4:
B
B
-
-
Tree.
Tree.
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
2
2
T
T
À
À
I NGUYÊN H
I NGUYÊN H
Ọ
Ọ
C T
C T
Ậ
Ậ
P
P
1.
1.
Trương
Trương
H
H
ả
ả
i
i
B
B
ằ
ằ
ng
ng
,
,
Gi
Gi
á
á
o
o
tr
tr
ì
ì
nh
nh
C
C
ấ
ấ
u
u
tr
tr
ú
ú
c
c
d
d
ữ
ữ
li
li
ệ
ệ
u
u
2
2
,
,
Nh
Nh
à
à
xu
xu
ấ
ấ
t
t
b
b
ả
ả
n
n
Đ
Đ
ạ
ạ
i
i
h
h
ọ
ọ
c
c
qu
qu
ố
ố
c
c
gia
gia
Tp
Tp
.
.
H
H
ồ
ồ
Ch
Ch
í
í
Minh
Minh
,
,
2005
2005
2.
2.
Trương
Trương
H
H
ả
ả
i
i
B
B
ằ
ằ
ng
ng
,
,
T
T
à
à
i
i
li
li
ệ
ệ
u
u
tham
tham
kh
kh
ả
ả
o
o
b
b
ổ
ổ
sung,
sung,
Đ
Đ
ĩ
ĩ
a
a
CD
CD
-
-
Rom,
Rom,
Nh
Nh
à
à
xu
xu
ấ
ấ
t
t
b
b
ả
ả
n
n
Đ
Đ
ạ
ạ
i
i
h
h
ọ
ọ
c
c
qu
qu
ố
ố
c
c
gia
gia
Tp
Tp
.
.
H
H
ồ
ồ
Ch
Ch
í
í
Minh
Minh
, 2005
, 2005
3.
3.
Robert
Robert
L.Kruse
L.Kruse
, Alexander J.
, Alexander J.
Ryba
Ryba
,
,
Data
Data
structures and program Design in C++,
structures and program Design in C++,
Prentice
Prentice
-
-
Hall International, Inc, 1999
Hall International, Inc, 1999
4.
4.
H
H
ệ
ệ
th
th
ố
ố
ng
ng
b
b
à
à
i
i
t
t
ậ
ậ
p
p
m
m
ẫ
ẫ
u
u
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
3
3
HÌNH TH
HÌNH TH
Ứ
Ứ
C THI
C THI
Lý
Lý
thuy
thuy
ế
ế
t
t
: 60% ,
: 60% ,
Thi
Thi
t
t
ự
ự
lu
lu
ậ
ậ
n
n
Th
Th
ự
ự
c
c
h
h
à
à
nh
nh
: 40%,
: 40%,
N
N
ộ
ộ
p
p
B
B
à
à
i
i
t
t
ậ
ậ
p
p
l
l
ớ
ớ
n
n
Chương
Chương
1
1
:
:
C
C
à
à
i
i
đ
đ
ặ
ặ
t
t
c
c
á
á
c
c
gi
gi
ả
ả
i
i
thu
thu
ậ
ậ
t
t
s
s
ắ
ắ
p
p
x
x
ế
ế
p
p
ngo
ngo
ạ
ạ
i
i
Chương
Chương
2
2
:
:
C
C
à
à
i
i
đ
đ
ặ
ặ
t
t
b
b
ả
ả
ng
ng
băm
băm
(5
(5
phương
phương
ph
ph
á
á
p
p
gi
gi
ả
ả
i
i
quy
quy
ế
ế
t
t
đ
đ
ụ
ụ
ng
ng
đ
đ
ộ
ộ
)
)
B
B
à
à
i
i
to
to
á
á
n
n
qu
qu
ả
ả
n
n
lý
lý
sinh
sinh
viên
viên
Chương
Chương
tr
tr
ì
ì
nh
nh
t
t
ừ
ừ
đi
đi
ể
ể
n
n
Chương
Chương
3
3
:
:
Cây
Cây
đ
đ
ỏ
ỏ
đen
đen
:
:
C
C
à
à
i
i
đ
đ
ặ
ặ
t
t
c
c
á
á
c
c
ph
ph
é
é
p
p
to
to
á
á
n
n
Chương
Chương
4
4
: B
: B
-
-
TREE:
TREE:
C
C
à
à
i
i
đ
đ
ặ
ặ
t
t
c
c
á
á
c
c
ph
ph
é
é
p
p
to
to
á
á
n
n
Lưu
Lưu
ý:
ý:
(
(
Yêu
Yêu
c
c
ầ
ầ
u
u
n
n
ộ
ộ
p
p
b
b
à
à
i
i
t
t
ậ
ậ
p
p
cu
cu
ố
ố
i
i
kho
kho
á
á
):
):
Xây
Xây
d
d
ự
ự
ng
ng
giao
giao
di
di
ệ
ệ
n
n
trên
trên
window,
window,
c
c
á
á
c
c
giao
giao
di
di
ệ
ệ
n
n
đ
đ
ồ
ồ
ho
ho
ạ
ạ
-
-
ưu
ưu
tiên
tiên
cho
cho
c
c
á
á
c
c
c
c
à
à
i
i
đ
đ
ặ
ặ
t
t
OOP
OOP
(C++
(C++
ho
ho
ặ
ặ
c
c
Java)
Java)
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
4
4
CHƯƠNG
CHƯƠNG
1
1
-
-
S
S
Ắ
Ắ
P TH
P TH
Ứ
Ứ
T
T
Ự
Ự
NGO
NGO
Ạ
Ạ
I
I
N
N
ộ
ộ
i
i
dung
dung
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
2.
2.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
t
t
ự
ự
nhiên
nhiên
3.
3.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
đa
đa
l
l
ố
ố
i
i
cân
cân
b
b
ằ
ằ
ng(balanced
ng(balanced
multiway
multiway
merging)
merging)
4.
4.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
đa
đa
pha(Polyphase
pha(Polyphase
Merge)
Merge)
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
5
5
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
Kh
Kh
á
á
i
i
ni
ni
ệ
ệ
m
m
cơ
cơ
b
b
ả
ả
n
n
:
:
Run
Run
l
l
à
à
m
m
ộ
ộ
t
t
dãy
dãy
liên
liên
ti
ti
ế
ế
p
p
c
c
á
á
c
c
ph
ph
ầ
ầ
n
n
t
t
ử
ử
đư
đư
ợ
ợ
c
c
s
s
ắ
ắ
p
p
th
th
ứ
ứ
t
t
ự
ự
.
.
V
V
í
í
d
d
ụ
ụ
2 4 7 12 50
2 4 7 12 50
l
l
à
à
m
m
ộ
ộ
t
t
run
run
g
g
ồ
ồ
m
m
c
c
ó
ó
5
5
ph
ph
ầ
ầ
n
n
t
t
ử
ử
Chi
Chi
ề
ề
u
u
d
d
à
à
i
i
run
run
ch
ch
í
í
nh
nh
l
l
à
à
s
s
ố
ố
ph
ph
ầ
ầ
n
n
t
t
ử
ử
trong
trong
Run.
Run.
Ch
Ch
ẳ
ẳ
ng
ng
h
h
ạ
ạ
n
n
, run
, run
trong
trong
v
v
í
í
d
d
ụ
ụ
trên
trên
c
c
ó
ó
chi
chi
ề
ề
u
u
d
d
à
à
i
i
l
l
à
à
5.
5.
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
6
6
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
Gi
Gi
ả
ả
i
i
thu
thu
ậ
ậ
t
t
:
:
Gi
Gi
ả
ả
i
i
thu
thu
ậ
ậ
t
t
s
s
ắ
ắ
p
p
x
x
ế
ế
p
p
t
t
ậ
ậ
p
p
tin
tin
b
b
ằ
ằ
ng
ng
phương
phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
run
run
c
c
ó
ó
th
th
ể
ể
t
t
ó
ó
m
m
lư
lư
ợ
ợ
c
c
như
như
sau
sau
:
:
Input
Input
:
:
f0
f0
l
l
à
à
t
t
ậ
ậ
p
p
tin
tin
c
c
ầ
ầ
n
n
s
s
ắ
ắ
p
p
th
th
ứ
ứ
t
t
ự
ự
.
.
Output
Output
:
:
f0
f0
l
l
à
à
t
t
ậ
ậ
p
p
tin
tin
đã
đã
đư
đư
ợ
ợ
c
c
s
s
ắ
ắ
p
p
th
th
ứ
ứ
t
t
ự
ự
.
.
G
G
ọ
ọ
i
i
f1, f2
f1, f2
l
l
à
à
2
2
t
t
ậ
ậ
p
p
tin
tin
tr
tr
ộ
ộ
n
n
.
.
C
C
á
á
c
c
t
t
ậ
ậ
p
p
tin f0, f1, f2
tin f0, f1, f2
c
c
ó
ó
th
th
ể
ể
l
l
à
à
c
c
á
á
c
c
t
t
ậ
ậ
p
p
tin
tin
tu
tu
ầ
ầ
n
n
t
t
ự
ự
(text file) hay
(text file) hay
c
c
ó
ó
th
th
ể
ể
l
l
à
à
c
c
á
á
c
c
t
t
ậ
ậ
p
p
tin
tin
nh
nh
ị
ị
phân
phân
.
.
-
-
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
7
7
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
Bư
Bư
ớ
ớ
c 1:
c 1:
-
-
Gi
Gi
ả
ả
s
s
ử
ử
c
c
á
á
c ph
c ph
ầ
ầ
n t
n t
ử
ử
trên f0 l
trên f0 l
à
à
:
:
24 12 67 33 58 42 11 34 29 31
24 12 67 33 58 42 11 34 29 31
-
-
Kh
Kh
ở
ở
i t
i t
ạ
ạ
o f1, f2 r
o f1, f2 r
ỗ
ỗ
ng
ng
-
-
Th
Th
ự
ự
c hi
c hi
ệ
ệ
n phân b
n phân b
ố
ố
m=1 ph
m=1 ph
ầ
ầ
n t
n t
ử
ử
l
l
ầ
ầ
n lư
n lư
ợ
ợ
t t
t t
ừ
ừ
f0 v
f0 v
à
à
o
o
f1 v
f1 v
à
à
f2:
f2:
f1: 24 67 58 11 29
f1: 24 67 58 11 29
f2: 12 33 42 34 31
f2: 12 33 42 34 31
Tr
Tr
ộ
ộ
n f1, f2 th
n f1, f2 th
à
à
nh f0:
nh f0:
f0: 12 24 33 67 42 58 11 34 29 31
f0: 12 24 33 67 42 58 11 34 29 31
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
8
8
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
Bư
Bư
ớ
ớ
c
c
2:
2:
-
-
Phân
Phân
b
b
ố
ố
m=2
m=2
ph
ph
ầ
ầ
n
n
t
t
ử
ử
l
l
ầ
ầ
n
n
lư
lư
ợ
ợ
t
t
t
t
ừ
ừ
f0
f0
v
v
à
à
o
o
f1
f1
v
v
à
à
f2:
f2:
f1: 12 24 42 58 29 31
f1: 12 24 42 58 29 31
f0:
f0:
12 24
12 24
33 67
33 67
42 58
42 58
11 34
11 34
29 31
29 31
f2:
f2:
33 67
33 67
11 34
11 34
-
-
Tr
Tr
ộ
ộ
n
n
f1, f2
f1, f2
th
th
à
à
nh
nh
f0:
f0:
f
f
1:
1:
12 24
12 24
42 58
42 58
29 31
29 31
f0:
f0:
12 24 33 67
12 24 33 67
11 34 42 58
11 34 42 58
29 31
29 31
f2:
f2:
33 67
33 67
11 34
11 34
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
9
9
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
Bư
Bư
ớ
ớ
c
c
3:
3:
-
-
Tương
Tương
t
t
ự
ự
bư
bư
ớ
ớ
c
c
2,
2,
phân
phân
b
b
ố
ố
m=4
m=4
ph
ph
ầ
ầ
n
n
t
t
ử
ử
l
l
ầ
ầ
n
n
lư
lư
ợ
ợ
t
t
t
t
ừ
ừ
f0
f0
v
v
à
à
o
o
f1
f1
v
v
à
à
f2,
f2,
k
k
ế
ế
t
t
qu
qu
ả
ả
thu
thu
đư
đư
ợ
ợ
c
c
như
như
sau
sau
:
:
f1:
f1:
12 24 33 67
12 24 33 67
29 31
29 31
f2:
f2:
11 34 42 58
11 34 42 58
-
-
Tr
Tr
ộ
ộ
n
n
f1, f2
f1, f2
th
th
à
à
nh
nh
f0:
f0:
f0:
f0:
11 12 24 33 34 42 58 67
11 12 24 33 34 42 58 67
29 31
29 31
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
10
10
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
Bư
Bư
ớ
ớ
c
c
4:
4:
-
-
Phân
Phân
b
b
ố
ố
m=8
m=8
ph
ph
ầ
ầ
n
n
t
t
ử
ử
l
l
ầ
ầ
n
n
lư
lư
ợ
ợ
t
t
t
t
ừ
ừ
f0
f0
v
v
à
à
o
o
f1
f1
v
v
à
à
f2:
f2:
f1: 11 12 24 33 34 42 58 67
f1: 11 12 24 33 34 42 58 67
f2: 29 31
f2: 29 31
-
-
Tr
Tr
ộ
ộ
n
n
f1, f2
f1, f2
th
th
à
à
nh
nh
f0:
f0:
f0: 11 12 24 29 31 33 34 42 58 67
f0: 11 12 24 29 31 33 34 42 58 67
Bư
Bư
ớ
ớ
c
c
5:
5:
L
L
ặ
ặ
p
p
l
l
ạ
ạ
i
i
tương
tương
t
t
ự
ự
c
c
á
á
c
c
bư
bư
ớ
ớ
c
c
trên
trên
,
,
cho
cho
đ
đ
ế
ế
n
n
khi
khi
chi
chi
ề
ề
u
u
d
d
à
à
i
i
m
m
c
c
ủ
ủ
a
a
run
run
c
c
ầ
ầ
n
n
phân
phân
b
b
ổ
ổ
l
l
ớ
ớ
n
n
hơn
hơn
chi
chi
ề
ề
u
u
d
d
à
à
i
i
n
n
c
c
ủ
ủ
a
a
f0
f0
th
th
ì
ì
d
d
ừ
ừ
ng
ng
.
.
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
11
11
void
void
chia(FILE
chia(FILE
*
*
a,FILE
a,FILE
*
*
b,FILE
b,FILE
*
*
c,int
c,int
p)
p)
void main (void)
void main (void)
{
{
FILE *a,*b,*c;
FILE *a,*b,*c;
tao_file
tao_file
();
();
xuat_file
xuat_file
();
();
p = 1;
p = 1;
while (p < n)
while (p < n)
{
{
chia(a,b,c,p
chia(a,b,c,p
);
);
tron(b,c,a,p
tron(b,c,a,p
);
);
p=2*p;
p=2*p;
}
}
}
}
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
12
12
void
void
chia(FILE
chia(FILE
*
*
a,FILE
a,FILE
*
*
b,FILE
b,FILE
*
*
c,int
c,int
p)
p)
while (!
while (!
feof(a
feof(a
))
))
{
{
/*
/*
Chia
Chia
p
p
phan
phan
tu
tu
cho
cho
b
b
*/
*/
dem
dem
=0;
=0;
while ((
while ((
dem
dem
<p) && (!
<p) && (!
feof(a
feof(a
)))
)))
{
{
fscanf(a,"%3d",&x);
fscanf(a,"%3d",&x);
fprintf(b,"%3d",x);
fprintf(b,"%3d",x);
dem
dem
++;
++;
}
}
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
13
13
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
dem
dem
=0;
=0;
while ((
while ((
dem
dem
<p) && (!
<p) && (!
feof(a
feof(a
)))
)))
{
{
fscanf(a,"%3d",&x);
fscanf(a,"%3d",&x);
fprintf(c,"%3d",x);
fprintf(c,"%3d",x);
dem
dem
++;
++;
}
}
}
}
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
14
14
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
void
void
tron(FILE
tron(FILE
*
*
b,FILE
b,FILE
*
*
c,FILE
c,FILE
*
*
a,int
a,int
p)
p)
int
int
stop,x,y,l,r
stop,x,y,l,r
;
;
a=
a=
fopen("d:
fopen("d:
\
\
ctdl
ctdl
\
\
sortfile
sortfile
\
\
bang.int","wb
bang.int","wb
");
");
b=fopen("d:
b=fopen("d:
\
\
ctdl
ctdl
\
\
sortfile
sortfile
\
\
bang1.int","rb");
bang1.int","rb");
c=fopen("d:
c=fopen("d:
\
\
ctdl
ctdl
\
\
sortfile
sortfile
\
\
bang2.int","rb");
bang2.int","rb");
while ((!
while ((!
feof(b
feof(b
)) && (!
)) && (!
feof(c
feof(c
)))
)))
{
{
l=0;/*
l=0;/*
so
so
phan
phan
tu
tu
cua
cua
b
b
da
da
ghi
ghi
len
len
a*/
a*/
r=0;/*
r=0;/*
so
so
phan
phan
tu
tu
cua
cua
c
c
da
da
ghi
ghi
len
len
a
a
*/
*/
fscanf(b,"%3d",&x);
fscanf(b,"%3d",&x);
fscanf(c,"%3d",&y);
fscanf(c,"%3d",&y);
stop=0;
stop=0;
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
15
15
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
while ((l!=p) && (r!=p) && (!stop))
while ((l!=p) && (r!=p) && (!stop))
{
{
if (x<y)
if (x<y)
{
{
fprintf(a,"%3d",x);
fprintf(a,"%3d",x);
l++;
l++;
if ((l<p) && (!
if ((l<p) && (!
feof(b
feof(b
)))
)))
/*
/*
chua du p phan tu va chua het file b
chua du p phan tu va chua het file b
*/
*/
fscanf(b,"%3d",&x);
fscanf(b,"%3d",&x);
else
else
{
{
fprintf(a,"%3d",y);
fprintf(a,"%3d",y);
r++;
r++;
if (
if (
feof(b
feof(b
))
))
stop=1;
stop=1;
}
}
}
}
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
16
16
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
else
else
{
{
fprintf(a,"%3d",y);
fprintf(a,"%3d",y);
r++;
r++;
if ((r<p) && (!
if ((r<p) && (!
feof(c
feof(c
)))
)))
/*
/*
chua
chua
du p
du p
phan
phan
tu
tu
va
va
chua
chua
het
het
file c
file c
*/
*/
fscanf(c,"%3d",&y);
fscanf(c,"%3d",&y);
else
else
{
{
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
17
17
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
fprintf(a,"%3d",x);
fprintf(a,"%3d",x);
l++;
l++;
if (
if (
feof(c
feof(c
))
))
stop=1;
stop=1;
}
}
}
}
}
}
//
//
Chep
Chep
phan
phan
con
con
lai
lai
cua
cua
p
p
phan
phan
tu
tu
tren
tren
b
b
len
len
a
a
while ((!
while ((!
feof(b
feof(b
)) && (l<p))
)) && (l<p))
{
{
fscanf(b,"%3d",&x);
fscanf(b,"%3d",&x);
fprintf(a,"%3d",x);
fprintf(a,"%3d",x);
l++;
l++;
}
}
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
18
18
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
//
//
Chep
Chep
phan
phan
con
con
lai
lai
cua
cua
p
p
phan
phan
tu
tu
tren
tren
c
c
len
len
a
a
while ((!
while ((!
feof(c
feof(c
)) && (r<p))
)) && (r<p))
{
{
fscanf(c,"%3d",&y);
fscanf(c,"%3d",&y);
fprintf(a,"%3d",y);
fprintf(a,"%3d",y);
r++;
r++;
}
}
}
}
if (!
if (!
feof(b
feof(b
))
))
{
{
/*
/*
chep
chep
phan
phan
con
con
lai
lai
cua
cua
b
b
len
len
a
a
*/
*/
while (!
while (!
feof(b
feof(b
))
))
{
{
fscanf(b,"%3d",&x);
fscanf(b,"%3d",&x);
fprintf(a,"%3d",x);
fprintf(a,"%3d",x);
}
}
}
}
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
19
19
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
{
{
fscanf(c,"%3d",&x);
fscanf(c,"%3d",&x);
fprintf(a,"%3d",x);
fprintf(a,"%3d",x);
}
}
}
}
fclose(a
fclose(a
);
);
fclose(b
fclose(b
);
);
fclose(c
fclose(c
);
);
}
}
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
20
20
1.
1.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
Run
Run
(
(
tt
tt
)
)
/*
/*
Chia
Chia
p
p
phan
phan
tu
tu
cho
cho
c
c
*/
*/
dem
dem
=0;
=0;
while ((
while ((
dem
dem
<p) && (!
<p) && (!
feof(a
feof(a
)))
)))
{
{
fscanf(a,"%3d",&x);
fscanf(a,"%3d",&x);
fprintf(c,"%3d",x);
fprintf(c,"%3d",x);
dem
dem
++;
++;
}
}
}
}
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
21
21
2.
2.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
t
t
ự
ự
nhiên
nhiên
Gi
Gi
ả
ả
i
i
thu
thu
ậ
ậ
t
t
:
:
Trong
Trong
phương
phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
đã
đã
tr
tr
ì
ì
nh
nh
b
b
à
à
y
y
ở
ở
trên
trên
,
,
gi
gi
ả
ả
i
i
thu
thu
ậ
ậ
t
t
không
không
t
t
ậ
ậ
n
n
d
d
ụ
ụ
ng
ng
đư
đư
ợ
ợ
c
c
chi
chi
ề
ề
u
u
d
d
à
à
i
i
c
c
ự
ự
c
c
đ
đ
ạ
ạ
i
i
c
c
ủ
ủ
a
a
c
c
á
á
c
c
run
run
trư
trư
ớ
ớ
c
c
khi
khi
phân
phân
b
b
ổ
ổ
; do
; do
v
v
ậ
ậ
y
y
,
,
vi
vi
ệ
ệ
c
c
t
t
ố
ố
i
i
ưu
ưu
thu
thu
ậ
ậ
t
t
to
to
á
á
n
n
chưa
chưa
đư
đư
ợ
ợ
c
c
t
t
ậ
ậ
n
n
d
d
ụ
ụ
ng
ng
.
.
Đ
Đ
ặ
ặ
c
c
đi
đi
ể
ể
m
m
cơ
cơ
b
b
ả
ả
n
n
c
c
ủ
ủ
a
a
phương
phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
t
t
ự
ự
nhiên
nhiên
l
l
à
à
t
t
ậ
ậ
n
n
d
d
ụ
ụ
ng
ng
đ
đ
ộ
ộ
d
d
à
à
i
i
“
“
t
t
ự
ự
nhiên
nhiên
”
”
c
c
ủ
ủ
a
a
c
c
á
á
c
c
run
run
ban
ban
đ
đ
ầ
ầ
u
u
;
;
ngh
ngh
ĩ
ĩ
a
a
l
l
à
à
,
,
th
th
ự
ự
c
c
hi
hi
ệ
ệ
n
n
vi
vi
ệ
ệ
c
c
tr
tr
ộ
ộ
n
n
c
c
á
á
c
c
run
run
c
c
ó
ó
đ
đ
ộ
ộ
d
d
à
à
i
i
c
c
ự
ự
c
c
đ
đ
ạ
ạ
i
i
vơi
vơi
nhau
nhau
cho
cho
đ
đ
ế
ế
n
n
khi
khi
dãy
dãy
ch
ch
ỉ
ỉ
bao
bao
g
g
ồ
ồ
m
m
m
m
ộ
ộ
t
t
run:
run:
dãy
dãy
đã
đã
đư
đư
ợ
ợ
c
c
s
s
ắ
ắ
p
p
th
th
ứ
ứ
t
t
ự
ự
.
.
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
22
22
2.
2.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
t
t
ự
ự
nhiên
nhiên
(
(
tt
tt
)
)
Input
Input
:
:
f0
f0
l
l
à
à
t
t
ậ
ậ
p
p
tin
tin
c
c
ầ
ầ
n
n
s
s
ắ
ắ
p
p
th
th
ứ
ứ
t
t
ự
ự
.
.
Output
Output
:
:
f0
f0
l
l
à
à
t
t
ậ
ậ
p
p
tin
tin
đã
đã
đư
đư
ợ
ợ
c
c
s
s
ắ
ắ
p
p
th
th
ứ
ứ
t
t
ự
ự
.
.
L
L
ặ
ặ
p
p
Cho
Cho
đ
đ
ế
ế
n
n
khi
khi
dãy
dãy
c
c
ầ
ầ
n
n
s
s
ắ
ắ
p
p
ch
ch
ỉ
ỉ
g
g
ồ
ồ
m
m
duy
duy
nh
nh
ấ
ấ
t
t
m
m
ộ
ộ
t
t
run.
run.
Phân
Phân
b
b
ố
ố
:
:
Phân
Phân
b
b
ố
ố
F0
F0
v
v
à
à
o
o
F1
F1
v
v
à
à
F2
F2
theo
theo
c
c
á
á
c
c
run
run
t
t
ự
ự
nhiên
nhiên
Tr
Tr
ộ
ộ
n
n
:
:
Trôn
Trôn
c
c
á
á
c
c
run
run
cua
cua
F1
F1
v
v
à
à
F2
F2
v
v
à
à
o
o
F0
F0
Qu
Qu
á
á
tr
tr
ì
ì
nh
nh
n
n
à
à
y
y
s
s
ẽ
ẽ
ti
ti
ế
ế
p
p
t
t
ụ
ụ
c
c
cho
cho
đ
đ
ế
ế
n
n
khi
khi
s
s
ố
ố
run
run
c
c
ủ
ủ
a
a
F0
F0
l
l
á
á
1
1
th
th
ì
ì
d
d
ừ
ừ
ng
ng
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
23
23
2.
2.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
t
t
ự
ự
nhiên
nhiên
(
(
tt
t
t
)
)
A
1298765
B 1 2 9 7 5
C86
A' 1 2 8 9 6 7 5
Bước2
51 2 6 7 8 9A'
6 7C
51 2 8 9B
56 71 2 8 9
A
Bước1
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
24
24
2.
2.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
t
t
ự
ự
nhiên
nhiên
(
(
tt
tt
)
)
A 1 2 6 7 8 9
5
B 1 2 6 7 8 9
C5
A' 1 2 5 6 7 8 9
T
T
ạ
ạ
i
i
bư
bư
ớ
ớ
c
c
3
3
ta
ta
th
th
ấ
ấ
y
y
r
r
ằ
ằ
ng
ng
file A
file A
đã
đã
đư
đư
ợ
ợ
c
c
s
s
ắ
ắ
p
p
x
x
ế
ế
p
p
v
v
à
à
k
k
ế
ế
t
t
th
th
ú
ú
c
c
.
.
Bước3
Trương H
Trương H
ả
ả
i B
i B
ằ
ằ
ng
ng
-
-
C
C
ấ
ấ
u tr
u tr
ú
ú
c d
c d
ữ
ữ
li
li
ệ
ệ
u 2
u 2
25
25
2.
2.
Phương
Phương
ph
ph
á
á
p
p
tr
tr
ộ
ộ
n
n
t
t
ự
ự
nhiên
nhiên
(
(
tt
tt
)
)
N
N
ế
ế
u
u
mô
mô
t
t
ả
ả
thu
thu
ậ
ậ
t
t
to
to
á
á
n
n
như
như
sau
sau
:
:
while (
while (
S
S
ố
ố
run
run
trong
trong
t
t
ệ
ệ
p
p
A >1)
A >1)
{
{
-
-
L
L
ầ
ầ
n
n
lư
lư
ợ
ợ
t
t
phân
phân
b
b
ổ
ổ
c
c
á
á
c
c
run
run
t
t
ự
ự
nhiên
nhiên
t
t
ừ
ừ
file A
file A
sang 2 file B
sang 2 file B
v
v
à
à
C
C
theo
theo
c
c
á
á
ch
ch
:
:
m
m
ộ
ộ
t
t
run sang B
run sang B
th
th
ì
ì
run
run
ti
ti
ế
ế
p
p
theo
theo
sang C, run
sang C, run
sau
sau
đ
đ
ó
ó
sang B,
sang B,
cho
cho
đ
đ
ế
ế
n
n
khi
khi
h
h
ế
ế
t
t
run
run
trên
trên
A.
A.
Như
Như
v
v
ậ
ậ
y
y
t
t
ệ
ệ
p
p
B
B
c
c
ó
ó
th
th
ể
ể
ch
ch
ứ
ứ
a
a
nhi
nhi
ề
ề
u
u
hơn
hơn
file
file
C
C
m
m
ộ
ộ
t
t
run.
run.
-
-
Ti
Ti
ế
ế
p
p
theo
theo
tr
tr
ộ
ộ
n
n
t
t
ừ
ừ
ng
ng
c
c
ặ
ặ
p
p
run
run
t
t
ự
ự
nhiên
nhiên
trên
trên
B
B
v
v
à
à
C
C
th
th
à
à
nh
nh
m
m
ộ
ộ
t
t
run
run
v
v
à
à
ghi
ghi
v
v
à
à
o
o
t
t
ệ
ệ
p
p
A.
A.
-
-
N
N
ế
ế
u
u
A
A
đã
đã
s
s
ắ
ắ
p
p
x
x
ế
ế
p
p
hay
hay
ch
ch
ỉ
ỉ
c
c
ó
ó
m
m
ộ
ộ
t
t
run
run
th
th
ì
ì
k
k
ế
ế
t
t
th
th
ú
ú
c
c
,
,
n
n
ế
ế
u
u
không
không
quay
quay
l
l
ạ
ạ
i
i
vòng
vòng
l
l
ặ
ặ
p
p
.
.
}
}