bài tập lớn môn cấu trúc dữ liệu và giải thuật chủ đề thuật toán sắp xếp theo cơ số radix sort

16 0 0
Tài liệu đã được kiểm tra trùng lặp
bài tập lớn môn cấu trúc dữ liệu và giải thuật chủ đề thuật toán sắp xếp theo cơ số radix sort

Đ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

LỜI MỞ ĐẦULựa chọn đề tài về thuật toán sắp xếp theo cơ số Radix Sort đến từ sự quan tâm về một phương pháp sắp xếp không so sánh có tính ổn định, hiệu quả và đặc biệt là phù hợp khi xử

Trang 1

HỌC VIỆN NGÂN HÀNGHỆ CHÍNH QUY

KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ -**** -

Họ và tênMSV

1 Nguyễn Văn Ánh 25A40415252 Võ Mạnh Hoàng 25A40415423 Huỳnh Lê Hoàng 25A40415414 Lương Xuân Hợp 25A40415435 Hoàng Thị Hải Vân 25A4042257

Hà Nội – 12/2023

Trang 2

HỌC VIỆN NGÂN HÀNGHỆ CHÍNH QUY

KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ -**** -

Hà Nội – 12/2023

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU 1

LỜI CẢM ƠN 2

LỜI CAM ĐOAN 3

I TỔNG QUAN VỀ THUẬT TOÁN SẮP XẾP THEO CƠ SỐ RADIX SORT 4

3 So sánh Radix Sort với Quick Sort 9

IV CHƯƠNG TRÌNH DEMO 11

TÀI LIỆU THAM KHẢO 13

Trang 4

LỜI MỞ ĐẦU

Lựa chọn đề tài về thuật toán sắp xếp theo cơ số Radix Sort đến từ sự quan tâm về một phương pháp sắp xếp không so sánh có tính ổn định, hiệu quả và đặc biệt là phù hợp khi xử lý các dãy số lớn với số lượng phần tử khác nhau Thuật toán này đem lại sự hứa hẹn trong việc giải quyết các vấn đề sắp xếp số lớn hiệu quả hơn so với nhiều thuật toán sắp xếp so sánh khác.

Mục tiêu của nghiên cứu này là tìm hiểu sâu hơn về cơ chế hoạt động của thuật toán Radix Sort, đánh giá độ phức tạp của nó trong việc sắp xếp các dãy số lớn và đa dạng, cũng như tìm hiểu cách áp dụng thuật toán này vào các vấn đề thực tế.

Phạm vi nghiên cứu của dự án này sẽ tập trung vào việc nắm vững cơ chế hoạt động của thuật toán sắp xếp Radix Sort, xác định tính chất và ứng dụng của thuật toán trong công việc sắp xếp dãy số lớn và đa dạng Nghiên cứu cũng sẽ xem xét khả năng tối ưu hoá và cải thiện hiệu suất của thuật toán này trong các điều kiện thực tế.

Phương pháp nghiên cứu sẽ bao gồm việc tìm hiểu lý thuyết cơ bản về thuật toán Radix Sort đồng thời sử dụng các bộ dữ liệu thực tế để đánh giá hiệu suất và tính chất của thuật toán Ngoài ra, phương pháp nghiên cứu cũng sẽ bao gồm việc so sánh kết quả và hiệu suất của thuật toán Radix Sort với các thuật toán sắp xếp khác để đánh giá tính hiệu quả và ứng dụng của nó trong các tình huống cụ thể

Trong quá trình thực hiện đề tài, chúng em vẫn còn nhiều thiếu sót, rất mong nhận được sự góp ý của thầy cô và các bạn

1

Trang 5

LỜI CẢM ƠN

Trước hết chúng em xin gửi lời cảm ơn tới Học viện Ngân hàng đã đưa môn Cấu trúc dữ liệu và giải thuật vào chương trình giảng dạy Đồng thời, em xin bày tỏ lòng biết ơn sâu sắc đến các thầy cô Khoa Hệ thống thống tin quản lý, đặc biệt thầy Nguyễn Thanh Thụy – giảng viên bộ môn đã dạy dỗ, truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian học tập vừa qua

Chủ đề “ Thuật toán sắp xếp theo cơ số (Radix Sort)” là kết quả của một khóa học, là sự nỗ lực, cố gắng và phói hợp của tất cả các thành viên trong nhóm chúng em Bài báo cáo này là một cột mốc đánh dấu cũng đồng thời là sự lưu giữ cho những cố gắng của chúng em trong suốt thời gian vừa qua Trong quá trình thực hiện và hoàn thành đề tài này, chúng em đã nhận được sự hướng dẫn nhiệt tình của các thầy cô và các bạn trong Khoa Hệ thống thông tin quản lý – Học viện Ngân hàng Chúng em xin được gửi lời cảm ơn chân thành và sâu sắc đến quý thầy giáo, cô giáo trong Khoa, những người đã tận tình giảng dạy và truyền đạt những kiến thức cần thiết trong thời gian qua để chúng em có đủ kiến thức, kinh nghiệm, cũng như sự tự tin để hoàn thành đề tài này

Hơn nữa, chúng em đặc biệt gửi lời cảm ơn đến giảng viên bộ môn, thầy Nguyễn Thanh Thụy, người đã đồng hành cùng chúng em trong suốt quá trình học tập và thực hiện bài tập này Khi học tập và làm việc tại lớp của thầy, chúng em không chỉ được học hỏi về kiến thức chuyên ngành mà còn được học về thái độ làm việc chỉn chu, nghiêm túc,về cách thức hợp tác, đúng trách nhiệm để hoàn thành công việc hiệu quả, nhanh chóng, tiết kiệm thời gian, nhân lực

Tuy nhiên dù đã cố gắng hết sức để hoàn thiện bài tập này nhưng do vốn kiến thức còn nhiều hạn chế, khả năng tiếp thu thực tế còn nhiều bỡ ngỡ nên sẽ không tránh khỏi những thiếu sót Kính mong nhận được sự cảm thông cũng như lời nhận xét, sự đóng góp ý kiến từ thầy và các bạn để đề tài của nhóm chúng em được hoàn thiện hơn

Cuối cùng, chúng em xin kính chúc thầy có nhiều sức khỏe, hạnh phúc, luôn là người dẫn dắt các thế hệ sinh viên của Học viện Ngân hàng trưởng thành và trở thành một nhân tố quan trọng của thị trường lao động

Em xin chân thành cảm ơn!

2

Trang 6

LỜI CAM ĐOAN

Em xin cam đoan nội dung bài tiểu luận là kết quả của quá trình nghiên cứu tìm hiểucủa nhóm chúng em, không đạo văn, gian lận, bịa đặt Toàn bộ nội dung tiểu luận được trình bày dựa trên những kiến thức được học, những hiểu biết bản thân và tìm hiểu từ nhiều nguồn tài liệu Tất cả những tài liệu tham khảo đều được trích dẫn rõ ràng, hợp pháp Do hiểu biết và trình độ còn hạn chế nên khó tránh khỏi những sai sót không đáng có, mong nhận được sự góp ý và thông cảm từ giảng viên Nhóm em xin hoàn toàn chịu trách nhiệm nếu có bất kì sự gian lận nào.

3

Trang 7

I TỔNG QUAN VỀ THUẬT TOÁN SẮP XẾP THEO CƠ SỐ RADIX SORT1 Radix Sort là gì?

Radix Sort là một thuật toán sắp xếp không so sánh Nó tránh so sánh bằng cách

tạo và phân phối các phần tử vào các nhóm theo cơ số của chúng Đối với các phần tử có nhiều hơn một chữ số có nghĩa , quá trình phân nhóm này được lặp lại cho từng chữ số, trong khi vẫn giữ nguyên thứ tự của bước trước cho đến khi tất cả các chữ số đã được xem xét.

2 Ứng dụng

Ứng dụng chính của thuật toán Radix Sort bao gồm:

Sắp xếp các số nguyên không âm: Radix Sort hiệu quả khi sắp xếp các số nguyên không âm với số lượng chữ số cố định hoặc giới hạn.

Sử dụng trong các hệ thống cơ sở dữ liệu: Thuật toán Radix Sort có thể được sử dụng để sắp xếp dữ liệu theo các trường số học cụ thể trong cơ sở dữ liệu.Ngoài ra, thuật toán Radix Sort cũng có thể được áp dụng trong các ứng dụng khác như xử lý hình ảnh, xử lý tín hiệu, và trong các trường hợp đặc biệt khi cần sắp xếp các sốnguyên không âm theo các quy tắc cụ thể về số lượng chữ số

Lặp lại quá trình trên với các chữ số tiếp theo (nếu có).

Kết hợp các nhóm đã sắp xếp để tạo thành dãy số đã được sắp xếp hoàn chỉnh.

II THUẬT TOÁN SẮP XẾP THEO CƠ SỐ RADIX SORT 1 Ý tưởng

Radix Sort dựa trên nguyên tắc phân loại thư của bưu điện Ta biết rằng, để chuyển một khối lượng thư lớn đến tay người nhận ở nhiều địa phương khác nhau, bưu điện thường tổ chức một hệ thống phân loại thư phân cấp Trước tiên, các thư đến cùng một tỉnh, thành phố sẽ được sắp chung vào một lô để gửi đến tỉnh thành tương ứng Bưu điện các tỉnh thành này lại thực hiện công việc tương tự Các thư đến cùng một quận, huyện sẽ được xếp vào chung một lô và gửi đến quận, huyện tương ứng Cứ như vậy, các bức thư sẽ được trao đến tay người nhận một cách có hệ thông mà công việc sắp xếp thư không quá nặng nhọc.

Mô phỏng lại qui trình trên, để sắp xếp dãy a1, a2, …, an thuật toán Radix Sort thực hiện như sau:

4

Trang 8

Trước tiên, ta giả sử mỗi phần tử ai trong dãy a1, a2, …., an là một số nguyên có tối đa m chữ số.

Phân loại các phần tử lần lượt theo các chữ số hàng đơn vị, hàng chục, hàng trăm…

Trang 9

+ Phân lô theo hàng đơn vị:

Trang 10

7

Trang 11

11 842510 70139 70098 45187 32526 17255 14244 12393 09992 07011 0428

Dãy số sau khi đã sắp xếp:

0428 0701 0999 1239 1424 1725 3252 4518 7009 7013 8425 91704 Độ phức tạp

Với một dãy n số, mỗi số có tối đa m chữ số, thuật toán thực hiện m lần các thao tác phân lô và ghép lô.

Trong thao tác phân lô, mỗi phần tử chỉ được xét đúng một lần, khi ghép cũng vậy.

Như vậy, chi phí cho việc thực hiện thuật toán hiển nhiên là O(2mn) = O(n)

8

Trang 12

III ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA THUẬT TOÁN SẮP XẾP THEO CƠ SỐ RADIX SORT

Ví dụ: Khi bạn cần sắp xếp danh sách các chuỗi theo thứ tự từ điển.Không tùy chọn: Radix Sort là một thuật toán độc lập về dữ liệu, nó không phụ thuộc vào cấu trúc hoặc giá trị của dữ liệu.

Dễ dàng mở rộng: Radix Sort có thể dễ dàng mở rộng để sắp xếp các dữ liệu khác nhau như chuỗi hoặc số thực.

Dễ hiểu: Radix Sort là một thuật toán dễ hiểu với cú pháp đơn giản và cách hoạt động rõ ràng.

2 Nhược điểm

Nó chỉ có thể sắp xếp các loại dữ liệu có thể biểu diễn bằng các hệ số cơ số Các loại dữ liệu khác, chẳng hạn như các số thực, không thể được sắp xếp bằng Radix Sort mà phải sử dụng các thuật toán khác.

Không hiệu quả với số lượng bit lớn: Khi sắp xếp các số nguyên có số lượng bit lớn, thuật toán radix sort trở nên không hiệu quả và đòi hỏi bộ nhớ lớn Điều này có thể là một hạn chế đối với các tập dữ liệu lớn và có số lượng bit lớn.

3 So sánh Radix Sort với Quick Sort

Radix SortQuick Sort

Ưu điểm

Hiệu suất tốt cho dãy số lớn và không bị ảnh hưởng bởi trạng thái ban đầu.

Xử lý cả số âm và dương một cách hiệu quả.

Sắp xếp ổn định, bảo tồn thứ tự ban đầu của các phần tử có cùng giá trị.

Hiệu suất cao trong nhiều trường hợp, đặc biệt là dãy số lớn.

Sắp xếp trực tiếp trên dãy ban đầu, không cần bộ nhớ phụ.

Dễ dàng cài đặt và thường nhanh hơn so với các giải thuật khác.

9

Trang 13

Khả năng tốn nhiều bộ nhớ trong trường hợp dãy số lớn.

Khó khăn khi xử lý dãy số với số lượng hạng lớn.

Chỉ áp dụng cho số nguyên, không thể sắp xếp kiểu dữ liệu phức tạp khác.

Khả năng xảy ra trường hợp xấu nhất, khiến hiệu suất giảmđáng kể.

Không đảm bảo tính ổn định, có thể thay đổi thứ tự của các phần tử có cùng giá trị.

Không xử lý tốt dãy số gần đã sắp xếp.

10

Trang 14

IV CHƯƠNG TRÌNH DEMO

11

Trang 15

Kết quả hiển thị:

12

Trang 16

TÀI LIỆU THAM KHẢO

Bài giảng môn Cấu trúc dữ liệu và giải thuật (n.d.) Retrieved from

Radix Sort – Data Structures and Algorithms Tutorials (n.d.) Retrieved from https://www.geeksforgeeks.org/radix-sort/

Sắp xếp theo cơ số (Radix Sort) - DNMTechs (n.d.) Retrieved from https://dnmtechs.com/sap-xep-theo-co-so-radix-sort/

What Is Radix sort Algorithm: Pseudocode, Time Complexity, C & More (n.d.) Retrievedfrom https://www.simplilearn.com/tutorials/data-structure-tutorial/radix-sort

13

Ngày đăng: 19/06/2024, 17:03