1. Trang chủ
  2. » Công Nghệ Thông Tin

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

36 863 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mảng và xâu ký tự
Tác giả Nguyễn Việt Hà
Trường học Trường Đại Học
Thể loại Tài liệu tham khảo
Năm xuất bản 2
Định dạng
Số trang 36
Dung lượng 516,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 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ắ

Trang 1

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

Trang 3

Tài liệu tham khảo

 C++ How to program, Chapter 7

 The C programming language, Chap 1.6, 1.9, Chap 5

Trang 4

 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

Trang 8

Kích thước mảng không cần biết trước

Trang 9

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

Trang 11

int linearSearch(int, int [], int);

Trang 12

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

Trang 14

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)

Trang 15

Sắp xếp chọn (selection sort)

 Tìm (chọn) phần tử nhỏ nhất, đổi lên vị trí đầu tiên

 Trong số phần tử còn lại, tìm phần tử nhỏ nhất, đổi lên vị trí thứ 2

 Lặp lại cho đến hết

Trang 18

Sắp xếp chèn (insertion sort)

 Giả sử dãy k phần tử đầu đã sắp xếp

dãy 1 phần tử đầu tiên hiển nhiên là đã có thứ

tự

 Xét phần tử tiếp theo, tìm cách chèn nó

vào vị trí thích hợp (dịch chuyển các phần

tử lớn hơn lùi lại một vị trí)

 Như vậy k+1 phần tử đã có thứ tự, xét tiếp

Trang 20

Sắp xếp nổi bọt (bubble sort)

Tuần tự xét các phần tử từ 2 đến n, đối vớiphần tử thứ k:

 So sánh nó với phần tử trước đó, nếu nó nhỏ hơn thì đổi chỗ, cứ như vậy đến khi phần tử này không đổi chỗ được nữa

(không nổi lên được nữa)

Trang 22

Độ phức tạp của các thuật toán sắp

Trang 23

Bài tập

 Hãy tính số phép toán so sánh và đổi cho của các thuật toán sắp xếp chọn, sắp xếp chèn, nổi bọt trong các trường hợp

 mảng ngẫu nhiên

 mảng đã đúng thứ tự

 mảng ngược thứ tự hoàn toàn

Trang 24

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

 So sánh khóa với phần tử giữa mảng, nếu không trùng thì ta xác định được khóa sẽ nằm ở nửa đầu hay nửa cuối mảng, lặp lại tìm kiếm cho phần nửa mảng này

 Dừng lại khi tìm thấy hoặc khi mảng chỉ

còn 1 phần tử mà không trùng

Thường cài đặt không sử dụng đệ qui.

Độ phức tạp O(log n)

Trang 27

Khai báo, nhập/xuất xâu

Trang 28

Tham số là xâu ký tự

 Về cơ bản như mảng

Như là tham số biến

 Có phần tử kết thúc xâu nên thường

không cần truyền kích thước

Trang 29

void stringCopy(char s1[], char s2[])

Trang 30

Bài tập

 Viết hàm tính kích thước của một xâu ký tự

 Viết hàm so sánh hai xâu ký tự có bằng

nhau hay không

Trang 32

bool stringCompare(char s1[], char s2[])

{

int i = 0;

while (s1[i] == s2[i] && s[i] > 0) i++;

if (s1[i] == s2[i]) return true;

else return false;

}

Trang 33

Một số hàm thư viện xâu

 Sử dụng thư viện string (thư viện C)

 #include <string.h>

 Một số hàm

 strlen(s) : trả lại kích thước xâu s

 strcpy(s1, s2) : copy s2 vào s1

 strcmp(s1, s2) : so sánh, nếu bằng thì kết quả

là 0;

Trang 35

Bài tập

 Viết hàm tạo xâu nghịch đảo: nhận tham

số là xâu, tạo xâu nghịch đảo của chính

xâu đó và ghi kết quả vào chính xâu tham

số vào

 Viết hàm kiểm tra một xâu ký tự có nằm trong một xâu ký tự khác hay không

Trang 36

Tự thực hành

 Thao tác thành thạo với mảng một chiều

 Cài đặt các hàm sắp xếp chọn, chèn, nổi bọt và tìm kiếm nhị phân

 Thao tác với xâu ký tự

 nhập xuất, tạo hằng xâu

 sử dụng các hàm thư viện copy, so sánh,…

Ngày đăng: 19/10/2013, 16:15

TỪ KHÓA LIÊN QUAN

w