Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
101,5 KB
Nội dung
CHƯƠNG SẮP XẾP VÀ TÌM KIẾM (SORTING AND SEARCHING) 7.1- Đặt tốn Sắp xếp q trình bố trí lại phần tử tập đối tượng theo thứ tự ấn định tăng dần (increasing), giảm dần (decreasing) Bài toán xếp xuất lĩnh vực tin học, phục vụ ứng dụng riêng hệ thống, từ ứng dụng ẩn bên Hệ điều hành tốn điều khiển q trình ( Proccess Control Problem), toán lập lịch cho CPU (CPU Schedulling), toán quản lý nhớ (Memory Management) ứng dụng thông thường xếp dãy số, xếp từ, câu, ghi theo thứ tự có liên quan tới trình xếp Tập đối tượng cần xếp xuất nhiều dạng khác nhau, đối tượng đối tượng liệu kiểu xếp dãy số, xếp kí tự, xếp string đối tượng tổng quát cấu trúc bao gồm số trường thông tin phản ánh đối tượng Chúng ta qui ước đối tượng cần xếp cấu trúc, trình xếp thực trường gọi trường khố Có nhiều thuật toán xếp khác để xếp đối tượng Tuy nhiên, để lựa chọn thuật toán xếp tốt, cần đánh giá thuật tốn theo hai khía cạnh: chiếm dụng nhớ áp dụng giải thuật thời gian thực giải thuật Đối với thời gian thực giải thuật, cần đánh giá chi phí thời gian trường hợp tốt nhất, trung bình xấu nguồn liệu vào Chúng ta đưa kỹ thuật lập trình, thông qua giải thuật kết đánh giá thuật tốn mà khơng chứng minh lại kết đó, trình bày chun đề khác tin học Những thuật toán xếp tìm kiếm bàn luận chương bao gồm thuật toán xếp đơn giản : chọn trực tiếp (Selection), thuật toán sủi bọt (Bubble), thuật toán chèn trực tiếp (Insertion), thuật toán xếp nhanh quick sort, merge sort, heap sort Trong tất ví dụ minh họa cho giải thuật xếp tìm kiếm, sử dụng tập số nguyên làm ví dụ xếp Dãy số nguyên không nhắc lại giải thích thuật tốn xếp 304 42 23 74 11 65 58 94 36 99 87 7.2- Giải thuật Selection Sort Nội dung Selection Sort chọn phần tử nhỏ dãy số k1, k2, ., kn với i = 0, 1, ,n; ki< k i+1 < , kn đổi chỗ cho phần tử thứ k i Như vậy, sau j =n-1 lần chọn, só dãy khố xếp theo thứ tự tăng dần Đối với dãy số trên, thực sau: Lần chọn thứ 0: Tìm khoảng từ đến n-1 cách thực n- lần so sánh để xác định phần tử min0 đổi chỗ cho phần tử vị trí Lần chọn thứ 1: Tìm khoảng từ đến n-1 cách thực n- lần so sánh để xác định phần tử min1 đổi chỗ cho phần tử vị trí Lần chọn thứ i: Tìm khoảng từ i đến n-1 cách thực n- i lần so sánh để xác định phần tử mini đổi chỗ cho phần tử vị trí i Lần chọn thứ n-2: Tìm khoảng từ n-2 đến n-1 cách thực lần so sánh để xác định phần tử minn-2 đổi chỗ cho phần tử vị trí n-2 Độ phức tạp tính tốn giải thuật Selection Sort là: Cmin=Cmax=Ctb = n (n-1)/2 Quá trình xếp dãy số minh họa thông qua bảng sau:p xếp dãy số minh họa thông qua bảng sau:p dãy số minh họa thông qua bảng sau: minh họa thông qua bảng sau:c minh họa thông qua bảng sau:a thông qua bảng sau:ng sau: i ki 42 11 11 11 11 11 11 11 11 11 23 23 23 23 23 23 23 23 23 23 74 74 74 36 36 36 36 36 36 36 11 42 42 42 42 42 42 42 42 42 65 65 65 65 65 58 58 58 58 58 58 58 58 58 58 65 65 65 65 65 94 94 94 94 94 94 74 74 74 74 36 36 36 74 74 74 94 87 87 87 305 99 99 99 99 99 99 99 99 94 94 87 87 87 87 87 87 87 94 99 99 Chương trình cài đặt sau: } delay(1000); }#include #include #include #include #include void Select(int *, int); void Init(int *, int); void In(int *, int); void Init(int *A, int n){ int i; printf("\n Tao lap day so:"); for (i=0; i