abcdef
20-07-2009, 08:45 AM
Phần 1 tui sẽ nói đến thuật toán sắp xếp. (ứng dụng khá nhiều trong các công việc sau này)
trên thế giới hiện tại có khá là nhiều thuật toán sắp xếp (quick sort, merge sort, sellection sort, bubble sort...)
Tui xin trình bày 3 thuật toán trong nhiều nhiều thuật toán trên.
Đầu tiên là thuật toán tệ nhất thế giới là bubble sort.
cho một dãy số các số chưa có thứ tự. Bắt đầu chạy từ vị trí đầu tiên sau đó sẽ so sánh với số liền sau của nó sẽ trở thành 1 dãy có thứ tự. Dây là thuật toán chạy khá chậm. Bạn cứ nghĩ là nó sẽ nổi dần số lớn(hoặc nhỏ tùy theo phép so sánh) lên trên nên nó có tên là bubble sort(thuật toán nổi bọt)
Tiếp theo là thuật toán giống với cách là của con người nhất là selection sort
Bạn có 1 dãy số chưa có thứ tự. Bạn sẽ tìm min(phần tử nhỏ nhất trong dãy) đưa về đầu tiên, sau đó bạn lặp lại quá trình tìm kiếm trên và bỏ qua phần tử đầu tiên tức là bạn sẽ tìm min của dãy từ 1->n-1 (ví dụ cho mảng n phần tử, phần tử bắt đầu được đánh dấu là 0).
Cuối cùng là quick sort
Giống như tên của nó hiện tại nó đang là thuật toán nhanh nhất.(hình như đã có flash sort cạnh tranh rồi) tư tưởng của nó là thế này:
Bạn chọn 1 số và bắt đầu sắp xếp sao cho số lớn hơn của số bạn vừa chọn nằm bên phải nó và số nhỏ hơn nằm bên trái của nó. Đệ quy lại quá trình trên với việc sắp xếp các dãy từ đầu đến số chọn lúc đầu và dãy số chọn lúc đầu đến cuối. Cứ như thế bạn sẽ có dãy đã sắp xếp.
Cài đặt theo từng ngôn ngữ thì bạn lên google là có ngay
Diễn đàn tin học trường gì mà toàn nói chuyện ruồi bu.
(Tiên đoán là bài này sẽ là bài ít được đọc và comment nhất)
trên thế giới hiện tại có khá là nhiều thuật toán sắp xếp (quick sort, merge sort, sellection sort, bubble sort...)
Tui xin trình bày 3 thuật toán trong nhiều nhiều thuật toán trên.
Đầu tiên là thuật toán tệ nhất thế giới là bubble sort.
cho một dãy số các số chưa có thứ tự. Bắt đầu chạy từ vị trí đầu tiên sau đó sẽ so sánh với số liền sau của nó sẽ trở thành 1 dãy có thứ tự. Dây là thuật toán chạy khá chậm. Bạn cứ nghĩ là nó sẽ nổi dần số lớn(hoặc nhỏ tùy theo phép so sánh) lên trên nên nó có tên là bubble sort(thuật toán nổi bọt)
Tiếp theo là thuật toán giống với cách là của con người nhất là selection sort
Bạn có 1 dãy số chưa có thứ tự. Bạn sẽ tìm min(phần tử nhỏ nhất trong dãy) đưa về đầu tiên, sau đó bạn lặp lại quá trình tìm kiếm trên và bỏ qua phần tử đầu tiên tức là bạn sẽ tìm min của dãy từ 1->n-1 (ví dụ cho mảng n phần tử, phần tử bắt đầu được đánh dấu là 0).
Cuối cùng là quick sort
Giống như tên của nó hiện tại nó đang là thuật toán nhanh nhất.(hình như đã có flash sort cạnh tranh rồi) tư tưởng của nó là thế này:
Bạn chọn 1 số và bắt đầu sắp xếp sao cho số lớn hơn của số bạn vừa chọn nằm bên phải nó và số nhỏ hơn nằm bên trái của nó. Đệ quy lại quá trình trên với việc sắp xếp các dãy từ đầu đến số chọn lúc đầu và dãy số chọn lúc đầu đến cuối. Cứ như thế bạn sẽ có dãy đã sắp xếp.
Cài đặt theo từng ngôn ngữ thì bạn lên google là có ngay
Diễn đàn tin học trường gì mà toàn nói chuyện ruồi bu.
(Tiên đoán là bài này sẽ là bài ít được đọc và comment nhất)