tailieunhanh - Cấu trúc dữ liệu và giải thuật - chương 9

Chương 9: Bảng của bộ slide bài giảng đầy đủ (gồm 11 chương) về môn CTDL & GT của trường ĐHBK . Trình bày ngắn gọn dễ hiểu với những hiệu ứng minh họa sinh động. Hướng dẫn kẻ bảng, tạo bảng trong các file trong word hay excel. | CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT (501040) Chương 9: Bảng Ma trận 2 chiều vs. 1 chiều A[i, j] B[ max_row*i + j] C[i + max_col*j] Bảng và chỉ mục Radix sort r a t m o p c a t m a p c a r t o p c o t t a r r a p Bước 1 r a t m o p c a t m a p c a r t o p c o t t a r r a p r a t m o p c a t m a p c a r t o p c o t t a r r a p r a t m o p c a t m a p c a r t o p c o t t a r r a p Bước 2 Bước 3 Đánh giá Radix sort Số lần so sánh là Θ(n k), n là số phần tử và k là số ký tự trên khóa So sánh với các phương pháp khác là n lg n: Nếu k lớn và n là nhỏ thì radix sort chậm Nếu k nhỏ và n là lớn thì radix sort nhanh hơn Bất tiện: Việc tách thành 27 danh sách con và ghép lại lúc sau trên DS liên tục gây ra việc di chuyển nhiều phần tử Khóa so sánh là chuỗi nhị phân thì không tốt Radix sort trên DSLK Giải thuật Radix sort trên DSLK Algorithm radix_sort Input: danh sách cần sắp thứ tự Output: danh sách đã sắp thứ tự //Mỗi queue chứa các phần tử có ký tự tương ứng 1. queues là một dãy có max_character hàng //Lặp k bước, kiểm tra các ký tự tại vị trí k 2. for position = size(khóa) to 0 . while (danh sách còn) . Lấy phần tử đầu tiên . Tính toán thứ tự của chữ cái ở vị trí k trong khóa . Đẩy phần tử này vào queue tương ứng . Nối tất cả các queue lại với nhau thành danh sách End radix_sort Mã C++ Radix sort trên DSLK const int max_chars = 28; template void Sortable_list :: radix_sort( ) { Record data; Queue queues[max_chars]; for (int position = key_size − 1; position >= 0; position−−) { // Loop from the least to the most significant position. while (remove(0, data) == success) { int queue_number = alphabetic_order((position)); queues[queue_number].append(data); // Queue operation. } rethread(queues); // Reassemble the list. } } Nối các queue liên kết Cách 1: Dùng các CTDL queue Phải dùng và ((),x) Cách 2: Viết lại các CTDL kiểu queue trong chương trình Chỉ cần tìm đến cuối mỗi queue và nối con . | CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT (501040) Chương 9: Bảng Ma trận 2 chiều vs. 1 chiều A[i, j] B[ max_row*i + j] C[i + max_col*j] Bảng và chỉ mục Radix sort r a t m o p c a t m a p c a r t o p c o t t a r r a p Bước 1 r a t m o p c a t m a p c a r t o p c o t t a r r a p r a t m o p c a t m a p c a r t o p c o t t a r r a p r a t m o p c a t m a p c a r t o p c o t t a r r a p Bước 2 Bước 3 Đánh giá Radix sort Số lần so sánh là Θ(n k), n là số phần tử và k là số ký tự trên khóa So sánh với các phương pháp khác là n lg n: Nếu k lớn và n là nhỏ thì radix sort chậm Nếu k nhỏ và n là lớn thì radix sort nhanh hơn Bất tiện: Việc tách thành 27 danh sách con và ghép lại lúc sau trên DS liên tục gây ra việc di chuyển nhiều phần tử Khóa so sánh là chuỗi nhị phân thì không tốt Radix sort trên DSLK Giải thuật Radix sort trên DSLK Algorithm radix_sort Input: danh sách cần sắp thứ tự Output: danh sách đã sắp thứ tự //Mỗi queue chứa các phần tử có ký tự tương ứng 1. queues là một dãy có max_character .

TỪ KHÓA LIÊN QUAN
crossorigin="anonymous">
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.