Thuật toán sắp xếp trộn (merge sort), giải thích kèm ví dụ trong PHP [serial về các thuật toán cơ bản trong lập trình]

Thuật toán tiếp theo mà chúng ta sẽ cùng tìm hiểu sau khi đi qua 2 thuật toán sắp xếp nổi bọt (bubble sort) và sắp xếp nhanh (quick sort) là sắp xếp trộn (merge sort). Sắp xếp trộn có nhiều điểm tương đồng với sắp xếp nhanh, khi nó cũng sử dụng đệ quy làm phương thức. Về tốc độ, bên lập trình nói rằng, trong đa số trường hợp nó nhanh hơn sắp xếp nổi bọt, và tương đương sắp xếp nhanh. Bài toán: một dãy số không theo thứ tự 4, 2, 9, 7, 3, 1, 6, …

Đọc thêm

Thuật toán sắp xếp nhanh (quick sort), giải thích kèm ví dụ trong PHP [serial về các thuật toán cơ bản trong lập trình]

Tên nghe đã thấy hấp dẫn rồi đúng không các bạn, dân lập trình nói rằng, trên các mảng ngẫu nhiên và có số lượng tương đối, quick sort có tốc độ sắp xếp tốt hơn đáng kể so với bubble sort (sắp xếp nổi bọt) và tương đương merge sort (sắp xếp trộn), cụ thể số bước cần thiết của quick sort để sắp xếp hoàn thành yêu cầu là ít hơn [độ phức tạp của thuật toán là O(n log n)]. Giờ chúng ta sẽ cùng tìm hiểu xem nó như thế nào nhé. Bài toán, cho dãy …

Đọc thêm

Thuật toán sắp xếp nổi bọt (bubble sort), giải thích kèm ví dụ trong PHP [serial về các thuật toán cơ bản trong lập trình]

Bài toán: chúng ta có một tập hợp các phần tử với các giá trị khác nhau, nhưng không theo thứ tự nào cả. Yêu cầu: sắp xếp lại thứ tự của nó từ nhỏ đến lớn. Lời ngỏ: hầu hết các ngôn ngữ lập trình đều có sẵn các hàm để giải quyết những bài toán cơ bản kiểu như thế này, vấn đề ở đây là chúng ta cần luyện tư duy, sử dụng các hàm cơ bản hơn để đạt yêu cầu đề ra. Ngôn ngữ lập trình nào ở đây không quá quan trọng, bạn nắm …

Đọc thêm