JavaScript là loại gì?
Trong bài viết này, tôi sẽ đề cập đến một số thuật toán sắp xếp phổ biến trong khoa học máy tính. Các thuật toán sắp xếp rất quan trọng để nghiên cứu vì chúng thường có thể làm giảm độ phức tạp của một vấn đề. Chúng cũng có các ứng dụng trực tiếp trong thuật toán tìm kiếm, thuật toán cơ sở dữ liệu, v.v. Show
Các thuật toán sắp xếp chúng ta sẽ tìm hiểu về
Phương pháp trợ giúp để hoán đổi và so sánhChúng ta sẽ hoán đổi các phần tử trong mảng rất nhiều, vì vậy hãy bắt đầu bằng cách viết một phương thức trợ giúp có tên là hoán đổi
Chúng ta sẽ so sánh các phần tử rất nhiều nên tôi nghĩ viết một hàm cho mục đích đó là một ý kiến hay
Được rồi, bây giờ điều đó đã được giải quyết, hãy chuyển sang phân loại Sắp xếp bong bóngTốt. O(N), tệ nhất. O(N^2)Sắp xếp bong bóng là một điểm khởi đầu tốt vì đây là một trong những thuật toán sắp xếp đơn giản nhất. Nó chủ yếu chỉ tốt cho mục đích giảng dạy vì nó là một trong những thuật toán sắp xếp chậm nhất Nói tóm lại, thuật toán sắp xếp bong bóng so sánh hai giá trị liền kề và hoán đổi chúng nếu giá trị thứ nhất lớn hơn giá trị thứ hai. Điều này phản ánh tên của nó vì các giá trị có xu hướng di chuyển lên theo đúng thứ tự, giống như bong bóng nổi lên trên bề mặt
Lưu ý rằng giải pháp mà tôi cung cấp là một phiên bản cải tiến một chút của thuật toán sắp xếp bong bóng thông thường vì chúng tôi đang trừ đi số lượt đi từ vòng lặp bên trong để tránh những so sánh không cần thiết. Để hiểu rõ hơn về những gì đang thực sự xảy ra, đây là một sơ đồ với một ví dụ Sắp xếp lựa chọnTệ nhất. O(N^2)Ý tưởng cơ bản đằng sau thuật toán sắp xếp lựa chọn là tìm giá trị nhỏ nhất trong cấu trúc dữ liệu, đặt nó ở vị trí đầu tiên, tìm giá trị nhỏ nhất thứ hai, đặt nó ở vị trí thứ hai, v.v.
Sơ đồ sau hoạt động như một ví dụ về thuật toán sắp xếp lựa chọn đang hoạt động Sắp xếp chènTốt. O(N), tệ nhất. O(N^2)Thuật toán sắp xếp chèn xây dựng mảng được sắp xếp cuối cùng một giá trị tại một thời điểm. Quá trình trông giống như thế này
Tham khảo sơ đồ này để biết ví dụ về sắp xếp chèn trong hành động Mặc dù vậy, thuật toán sắp xếp chèn có hiệu suất tốt hơn so với thuật toán sắp xếp lựa chọn và sắp xếp bong bóng khi sắp xếp lại các mảng nhỏ, tôi thực sự không khuyên bạn nên sử dụng nó ngoài mục đích giáo dục Hợp nhất Sắp xếpTệ nhất. O(N Nhật ký N)Thuật toán sắp xếp hợp nhất là thuật toán chia để trị. Nói cách khác, nó chia mảng ban đầu thành các mảng nhỏ hơn cho đến khi mỗi mảng nhỏ chỉ có một vị trí, sau đó nó hợp nhất các mảng nhỏ hơn thành một mảng lớn hơn được sắp xếp Việc triển khai ở đây là đệ quy và bao gồm hai hàm, một để chia mảng thành các mảng nhỏ hơn và một để thực hiện sắp xếp
Đây là một sơ đồ để hình dung quá trình Tốt nhất/Trung bình. O(N Log N), Xấu nhất. O(N^2)Thuật toán sắp xếp nhanh là một trong những thuật toán sắp xếp được sử dụng nhiều nhất. Tương tự như sắp xếp hợp nhất, sắp xếp nhanh cũng sử dụng phương pháp chia để trị. Hãy chia nhỏ quy trình thành các bước để hiểu rõ hơn một chút vì nó phức tạp hơn một chút so với các loại trước đây mà chúng tôi đã đề cập
Sắp xếp theo nhómTốt nhất/Trung bình. O(N + k), Xấu nhất. O(N^2)Thuật toán sắp xếp nhóm là một thuật toán sắp xếp phân tán, tách các phần tử thành các nhóm khác nhau hoặc các mảng nhỏ hơn, sau đó sử dụng thuật toán sắp xếp đơn giản hơn phù hợp để sắp xếp các mảng nhỏ, chẳng hạn như sắp xếp chèn, để sắp xếp từng nhóm
Lưu ý rằng sắp xếp nhóm hoạt động tốt nhất khi các phần tử có thể được phân phối đồng đều vào các nhóm. Nếu các phần tử phần lớn thưa thớt, thì sử dụng nhiều nhóm hơn sẽ tốt hơn và ngược lại Sơ đồ sau đây minh họa thuật toán sắp xếp nhóm đang hoạt động Phần kết luậnChúng tôi đã đề cập đến một số thuật toán sắp xếp phổ biến nhất. Còn rất nhiều thuật toán sắp xếp nữa mà mình chưa nói hết trong bài viết này, nếu bạn muốn mình viết tiếp phần 2 thì hãy cho mình biết nhé. Dù bằng cách nào, tôi dự định sẽ sớm viết về các thuật toán tìm kiếm, vì vậy hãy chú ý theo dõi Sắp xếp JavaScript có phải là sắp xếp bong bóng không?Sắp xếp bong bóng trong JavaScript được sử dụng để sắp xếp các phần tử của mảng theo một cách nhất định , ví dụ: số theo thứ tự tăng dần hoặc giảm dần, chuỗi theo thứ tự bảng chữ cái, v.v. Sắp xếp bong bóng hoạt động bằng cách so sánh từng phần tử liền kề của mảng và hoán đổi chúng nếu các phần tử không theo thứ tự.
JavaScript có sắp xếp QuickSort không?JavaScript. Sắp xếp một dãy số bằng thuật toán sắp xếp nhanh - w3resource.
Loại sắp xếp nào là sắp xếp mảng JavaScript?Sắp xếp theo số
. Điều này hoạt động tốt cho các chuỗi ("Apple" xuất hiện trước "Banana").
Sắp xếp JavaScript là đồng bộ hay không đồng bộ?Đúng. Array#sort được đảm bảo đồng bộ bởi đặc tả ECMAScript mà JavaScript dựa trên đó. Thuật toán được chỉ định rõ ràng tại đây. Đặt obj là kết quả của việc gọi ToObject chuyển giá trị này làm đối số |