Nhờ các anh chị khắc phục giúp em lỗi "Subscript out of range"

Liên hệ QC

Nguyen Rem

Tất cả chỉ là đưa ra quyết định đúng đắn
Tham gia
23/2/22
Bài viết
211
Được thích
30
Giới tính
Nữ
Anh chị vào Modul2 chạy thử code giúp em với ^^ . Mong các anh chị tìm và giải thích lỗi sai giúp em
Em muốn là khi em truyền cho đối số cho Sub "Test" số 1 và một mảng số thì nó sẽ xắp xếp các số trong mảng theo chiều tăng dần .
Ngược lại Nếu truyền một số bất kỳ thì xắp xếp mảng theo chiều giảm dần
Em cảm ơn Anh chị nhiều
1649971769919.png
 

File đính kèm

  • 18.xlsm
    13.6 KB · Đọc: 6
Mảng ban đầu:

aàáãoòóõ


Sort theo code:

aoàáãòóõ


Sort theo excel:

aáàãoóòõ


Thứ tự kết quả bị đứt gãy.
Thực tế sử dụng có lẽ là sort theo excel hợp lý hơn. Dù sao thì có vấn đề gì thì là tại Bill không tại ta :p:p
VBA không hổ trợ tiếng Việt nên Quicksort không sort trực tiếp tiếng Việt được, chỉ "làm nền" và cần phải chuyển mã các ký tự đặc biệt khá phức tạp :)
 
Upvote 0
Quick Sort tốc độ nhanh nhưng thuật toán khá phức tạp không dành cho người mới tập viết code, người tập viết code ban đầu chỉ cần viết chạy đúng khi trình độ nâng cao mới có khả năng tinh chỉnh rút gọn hoặc tăng tốc xử lý
Tìm trên Google có hàng loạt code của Tây na ná nhau, mượn ý tưởng và thêm vài lệnh tạo "code mới" góp vui với diễn đàn
...
Theo tôi hiểu thì thuật toán của thớt (bài #5) là Selection Sort chứ không phải là Bubble Sort.
Selection Sort tìm số nhỏ nhất và đưa lên đầu. Bubble Sort đẩy số lớn nhất về phía sau.
Có một điều đáng lưu ý là tuy hai thuật toán này rất chậm nhưng cũng là cách hiệu quả khi ta không cần Sort hết mà chỉ cần lấy n số nhỏ nhất (Selection) hoặc n số lớn nhất (Bubble).

Nếu tôi chơi Sort đỡ buồn thì tôi dùng Array Sort của Dot Net. Ghép key và chỉ số mảng cho nó Sort. Bên trong, dot net dùng thuật toán Quick Sort hay gì gì Sort kệ tía nó.
 
Upvote 0
Theo tôi hiểu thì thuật toán của thớt (bài #5) là Selection Sort chứ không phải là Bubble Sort.
Selection Sort tìm số nhỏ nhất và đưa lên đầu. Bubble Sort đẩy số lớn nhất về phía sau.
Có một điều đáng lưu ý là tuy hai thuật toán này rất chậm nhưng cũng là cách hiệu quả khi ta không cần Sort hết mà chỉ cần lấy n số nhỏ nhất (Selection) hoặc n số lớn nhất (Bubble).

Nếu tôi chơi Sort đỡ buồn thì tôi dùng Array Sort của Dot Net. Ghép key và chỉ số mảng cho nó Sort. Bên trong, dot net dùng thuật toán Quick Sort hay gì gì Sort kệ tía nó.
Mình không rành về các loại thuật toán sort, ban đầu chỉ viết code sort theo cách của chủ thớt để chủ thớt dể đọc, sau thấy liên kết bài #13 liệt kê nhiều loại sort khá hay nên thử viết lại và chế thêm vài lệnh cho vui
Thuật toán Sort chỉ là lý thuyết cơ bản, các phần mềm sort sẽ có code xịn và phức tạp hơn nhiều, lấy hàng xịn dùng là thượng sách:)
Chúc bạn vui khỏe
 
Upvote 0
Upvote 0
Hình như quick sort chỉ là 1 thuật toán, không phân biệt ngôn ngữ bác nhể :D
Từ bài đầu là chỉ nói về thuật toán. Và dùng VBA (ngôn ngữ) để thực hiện.

Nếu bạn chép mảng vào bảng tính rồi sort ở đó thì là dùng công cụ của Excel. Cũng như bài #22 dùng công cụ ArrayList. Và nếu bạn có theo dõi chuyện sort ở GPE này từ thượng cổ thì bạn còn thấy có người gọi hàm JavaScript để Sort. Bên trong những công cụ ấy, người viết công cụ dùng thuật toán gì và ngôn ngữ gì là chuyện của họ.
 
Upvote 0
quick sort là 1 trong nhiều thuật toán Sort dữ liệu, ngôn ngữ lập trình khác nhau cách viết và vận hành code thường khác nhau
Có lẽ là ngôn ngữ có thể khác nhau nhưng ý tưởng cốt lõi của thuật toán là không đổi.
Thấy bài 16 có nói tới sort tiếng Việt và bài 19 nói cụ thể thứ tự ưu tiên nên test thử, thấy kết quả không khớp với bài 19 nên trao đổi vậy thôi bác.
Từ bài đầu là chỉ nói về thuật toán. Và dùng VBA (ngôn ngữ) để thực hiện.

Nếu bạn chép mảng vào bảng tính rồi sort ở đó thì là dùng công cụ của Excel. Cũng như bài #22 dùng công cụ ArrayList. Và nếu bạn có theo dõi chuyện sort ở GPE này từ thượng cổ thì bạn còn thấy có người gọi hàm JavaScript để Sort. Bên trong những công cụ ấy, người viết công cụ dùng thuật toán gì và ngôn ngữ gì là chuyện của họ.
Cái này thì tất nhiên rối bác, cách nào lên đỉnh chả được. Có cái là kết quả cũng phải giống như mong đợi mới gọi là đạt bác nhỉ
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom