Phần mềm mô phỏng các thuật toán sắp xếp với Windows Form C#

0
203
mo phong thuat toan sap xep windows form

Một bài viết chia sẻ một ứng dụng mô phỏng thuật toán sắp xếp đơn giản được mình làm bằng winform với C#. Bạn nào có hứng thú hoặc cần làm bài tập lớn thì có thể tham khảo nhé.

1. Giới thiệu một chút

Đầu năm 2021, khi đó mình là sinh viên năm 3, ở kì 2 năm học đó mình có phải làm một bài thực tập cơ sở, đề tài tùy ý chọn hoặc xin thầy cô cho đề tài để làm. Độ khó của nó ở mức đơn giản, chủ yếu để làm quen dần với việc làm báo cáo này nọ.

Bạn bè mình làm đủ loại app, app ghi chú, app xem lịch học, thiết kế giao diện trang web . . . đủ các thể loại. Mình thì nhận đề tài từ cô hướng dẫn với chủ để “Nghiên cứu các thuật toán sắp xếp thông dụng và mô phỏng thuật toán sắp xếp nhanh”, hmm tên nghe kêu nhỉ ^^.

Về các thuật toán sắp xếp thông dụng mình có hẳn 1 seri các bài viết về chúng, có đầy đủ ý tưởng, lưu đồ thuật toán, giải thuật và cả code cài đặt với C++. Nếu cần bạn có thể tham khảo tại đây nhé!

2. Giới thiệu cái app

Gọi là app cho nó oai chứ thực chất nó nhỏ xíu xíu thôi. Lúc nhận đề tài mình bí quá nên có tham khảo trên share code, rồi về xây lại cái tương tự, và có điều sửa đi nhiều chút. Mình tin là sẽ có nhiều bạn giống mình nên mình share lên đây, hi vọng sẽ giúp được bạn nào đó.

Ý tưởng App của mình:

  1. Tạo ra danh sách các node cần sắp xếp bằng mảng các button, dựa vào các thuộc tính rồi set vị trí cho chúng. Các button này được set image background, border thành hình tròn. Text của các button này là giá trị của mảng
  2. Sử dụng một mảng kiểu số nguyên để lưu các giá trị, mình phải thực hiện cả sắp xếp các node và sắp xếp một mảng thật để thực hiện di chuyển các node một cách hợp lý.
  3. Viết các hàm di chuyển cho các node, lên xuống, sang trái, phải
  4. Kết hợp các bước di chuyển trên vào thuật toán sắp xếp thực tế.

Ý tưởng sơ sơ của app là vậy, để hiểu cụ thể thì cần bắt tay vào code mới hiểu được. Nó đơn giản lắm, chỉ cần dành thời gian một chút là được.

Mình chỉ mô phỏng 4 thuật toán trong 6 thuật toán sắp xếp thông dụng, 2 cái merge sort và heapsort hơi khó nên mình bỏ qua. Kích thước của mảng sắp xếp cũng bị hạn chế, tối đa 15 phần tử.

3. Một số hình ảnh về chiếc app

Giao diện mở app lên sẽ có giao diện trông như thế này. Ban đầu chỉ enable nút tạo mảng, chọn thuật toán sắp xếp.

mo phong bubble sort

Sau khi bấm tạo mảng sẽ có giao diện thế này, mặc định mình cho giá trị của :

giao dien bam tao mang

Tạo giá trị cho mảng, có thể nhập tay, random hoặc đọc từ file txt để chung thư mục file exe

tao gia tri cho mang

Khi đang sắp xếp trông nó sẽ thế này, có thể chỉnh tốc độ, zoom code to nhỏ và click chạy xong luôn.

Sếp xếp xong rùi giao diện sẽ thế này ^^.

da sap xep xong

Đáng lẽ phải có video quay lại thì trông sẽ trực quan hơn nhưng để vậy cho mọi người tò mò đó!

Nếu cần bạn có thể tham khảo soure code tại đây nè.

Cảm ơn bạn đã ghé thăm bài viết của mình, đọc thêm các bài viết khác về thuật toán tại đây nè.

LEAVE A REPLY

Please enter your comment!
Please enter your name here