giai thuat sap xep tron

3 109 0
giai thuat sap xep tron

Đang tải... (xem toàn văn)

Thông tin tài liệu

http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­‐giai-­‐thuat/index.jsp                                                                            Copyright  ©  vietjack.com     Giải thuật xếp trộn (Merge Sort) Giải thuật xếp trộn (Merge Sort) ? Sắp xếp trộn (Merge Sort) giải thuật xếp dựa giải thuật Chia để trị (Divide and Conquer) Với độ phức tạp thời gian trường hợp xấu Ο(n log n) giải thuật đáng quan tâm Đầu tiên, giải thuật xếp trộn chia mảng thành hai nửa sau kết hợp chúng lại với thành mảng xếp Cách giải thuật xếp trộn (Merge Sort) làm việc Dưới hình minh họa cách giải thuật xếp trộn làm việc Giả sử có mảng sau: Đầu tiên, giải thuật xếp trộn chia toàn mảng thành hai nửa Tiến trình chia tiếp tục diễn khơng chia thu giá trị tương ứng biểu diễn phần tử mảng Trong hình dưới, chia mảng kích cỡ thành hai mảng kích cỡ Tiến trình chia khơng làm thay đổi thứ tự phần tử mảng ban đầu Bây tiếp tục chia mảng thành nửa Tiến hành chia tiếp khơng chia http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­‐giai-­‐thuat/index.jsp                                                                            Copyright  ©  vietjack.com     Bây tổ hợp chúng theo cách thức mà chúng chia Đầu tiên so sánh hai phần tử list sau tổ hợp chúng vào list khác theo cách thức xếp Ví dụ, 14 33 vị trí xếp Chúng ta so sánh 27 10 list khác đặt 10 đầu sau 27 Tương tự, thay đổi vị trí 19 35 42 44 đặt tương ứng Vòng lặp để kết hợp cặp list Chúng ta so sánh giá trị sau hợp chúng lại vào list chứa giá trị, giá trị thứ tự Sau bước kết hợp cuối cùng, danh sách trông giống sau: Phần tìm hiểu số khía cạnh khác giải thuật xếp trộn Giải thuật cho Sắp xếp trộn (Merge Sort) Giải thuật xếp trộn tiếp tục tiến trình chia danh sách thành hai nửa chia Theo định nghĩa, list mà có phần tử list coi xếp Sau đó, giải thuật xếp trộn kết hợp sorted list lại với để tạo thành list mà xếp Bước 1: Nếu có phần tử list list xem xếp Trả list hay giá trị Bước 2: Chia list cách đệ qui thành hai nửa chia Bước 3: Kết hợp list nhỏ (đã qua xếp) thành list (cũng xếp) Giải thuật mẫu cho Sắp xếp trộn (Merge Sort) Có thể nói với giải thuật xếp trộn, bạn cần ý hai điểm chính: chia hợp http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­‐giai-­‐thuat/index.jsp                                                                            Copyright  ©  vietjack.com     Bởi giải thuật xếp trộn làm việc theo phương thức đệ qui nên phần triển khai giải thuật nên sử dụng đệ qui để biểu diễn Bắt đầu giải thuật xếp trộn mergesort( biến a mảng ) if ( n == ) return a khai báo biến l1 mảng = a[0] a[n/2] khai báo biến l2 mảng = a[n/2+1] a[n] l1 = mergesort( l1 ) l2 = mergesort( l2 ) return merge( l1, l2 ) // gọi hàm merge() Kết thúc giải thuật Bắt đầu hàm merge( Mảng a, mảng b ) khai báo biến c mảng while ( a b có phần tử ) if ( a[0] > b[0] ) Thêm b[0] vào cuối mảng c Xóa b[0] từ b else Thêm a[0] vào cuối mảng c Xóa a[0] từ a kết thúc if kết thúc while while ( a có phần tử ) Thêm a[0] vào cuối mảng c Xóa a[0] từ a kết thúc while while ( b có phần tử ) Thêm b[0] vào cuối mảng c Xóa b[0] từ b kết thúc while return c Kết thúc hàm Để theo dõi code đầy đủ giải thuật xếp trộn ngôn ngữ C, mời bạn click chuột vào chương: Sắp xếp trộn (Merge Sort) C   http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     ...http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­ giai- ­ thuat/ index.jsp                                                                            Copyright...  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/cau-­‐truc-­‐du-­‐lieu-­‐va-­ giai- ­ thuat/ index.jsp                                                                            Copyright

Ngày đăng: 02/12/2017, 13:34

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan