Tải bản đầy đủ (.ppt) (36 trang)

Mảng và xâu ký tự

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 (172.01 KB, 36 trang )

Mảng và xâu ký tự
Mảng và xâu 2
Nguyễn Việt Hà
Nội dung

Mảng

khai báo

cấu trúc, thao tác

Xâu ký tự

tạo xâu, nhập, xuất

một số hàm xâu

Một số thuật toán sắp xếp và tìm kiếm
Mảng và xâu 3
Nguyễn Việt Hà
Tài liệu tham khảo

C++ How to program, Chapter 7

The C programming language, Chap. 1.6,
1.9, Chap. 5
Mảng và xâu 4
Nguyễn Việt Hà
Mảng

Tập các phần tử thuộc cùng một kiểu dữ


liệu

Được sắp xếp liên tục trong bộ nhớ

kích thước là cố định

Có thể đánh chỉ số và truy cập theo thứ tự
ngẫu nhiên

C/C++: chỉ số luôn bắt đầu từ 0
Mảng và xâu 5
Nguyễn Việt Hà
Ví dụ
int main()
{
int c[12];
for (int i=0; i<12; i++) {
cin >> c[i];
}
}
Mảng và xâu 6
Nguyễn Việt Hà
Mảng và xâu 7
Nguyễn Việt Hà
Khai báo mảng
int main()
{
int a[12];
int b[] = {2, 3, 5, 7};
int c[5] = {2, 4, 8, 16};

int d[2] = {1, 2, 3}; // compile error
int m[5], i;

}
Mảng và xâu 8
Nguyễn Việt Hà
Kích thước mảng không cần biết trước
int main()
{
int n, max = 0;
cin >> n;
int a[n];
for (int i=0; i<n; i++) {
cin >> a[i];
if (a[max] < a[i]) max = i;
}
if (n > 0)
cout << "max number = " << a[max];
}
Mảng và xâu 9
Nguyễn Việt Hà
Mảng là tham số

Có thể truyền mảng là tham số cho một
hàm

Như là tham số biến

Hàm cần phải biết kích thước của mảng


thông qua một tham số phụ

thông qua giá trị kết thúc mảng
Mảng và xâu 10
Nguyễn Việt Hà
Ví dụ: copy mảng
void arrayCopy(int a[], int b[], int size)
{
for (int i=0; i<size; i++)
b[i] = a[i];
}
Mảng và xâu 11
Nguyễn Việt Hà
int linearSearch(int, int [], int);
int main()
{
int a[100], key;

cin >> key;
cout << linearSearch(key, a, 100);
}
int linearSearch(int k, int m[], int size)
{
for (int i=0; i< size; i++) {
if (k == m[i]) return i;
}
return -1;
}
Mảng và xâu 12
Nguyễn Việt Hà

Bài tập

Viết các hàm tính giá trị lớn nhất, giá trị
nhỏ nhất, giá trị trung bình của một mảng
số nguyên.
Mảng và xâu 13
Nguyễn Việt Hà
Mảng nhiều chiều
int a[8][8];
int b[2][3] = { {1, 2, 4}, {2, 3, 5} };
for (int i=0; i<2; i++)
for (int j=0; j<3; j++)
cout << b[i][j] << endl;

Bản chất là mảng một chiều
Mảng và xâu 14
Nguyễn Việt Hà
Sắp xếp và tìm kiếm

Một trong các công việc chính của các HTTT

Sắp xếp để tìm kiếm hiệu quả, vd. từ điển

Sắp xếp

đổi chỗ các phần tử tạo ra một mảng có thứ tự

sắp xếp chọn, chèn, nổi bọt, nhanh, trộn,…

Tìm kiếm


tìm kiếm nhị phân (binary search)

sử dụng thuật toán băm (hashing)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×