1. Trang chủ
  2. » Cao đẳng - Đại học

Phân tích và thiết kế thuật toán _ Thanh Huyền_sptn

13 228 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 0,93 MB

Nội dung

Thuật toán sắp xếp hòa lẫn merga sort trong Phân tích và thiết kế thuật toánBao gồm: Ý tưởng, thuật toán, ví dụ, thủ tục, độ phức tạp.1. Ý tưởngSắp xếp trộn (Merge Sort) là một giải thuật sắp xếp dựa trên giải thuật Chia để trị (Divide and Conquer).Để sắp xếp một mảng Astart...end, Chúng ta sẽ chia mảng lớn thành những mảng con nhỏ hơn bằng cách chia đôi mảng lớn và chúng ta tiếp tục chia đôi các mảng con cho tới khi mảng con nhỏ nhất chỉ còn 1 phần tử.

LOGO Thuật toán xếp hòa nhập/ hòa lẫn Merge Sort Nguyễn Thị Thanh Huyền Lớp SP Tin K49 Trường ĐHSP Thái Nguyên MERGE SORT Sắp xếp hòa nhập/ hòa lẫn ý tưởng Thuật toán Ví dụ Thủ tục Độ phức tạp LOGO Ý tưởng  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)  Để xếp mảng A[start end], Chúng ta chia mảng lớn thành mảng nhỏ cách chia đôi mảng lớn tiếp tục chia đôi mảng mảng nhỏ phần tử LOGO Ý tưởng  Sau tiến hành so sánh mảng có mảng sở (khi chia đôi mảng lớn thành mảng mảng lớn gọi mảng sở mảng đó) so sánh chúng vừa xếp vừa ghép mảng lại thành mảng sở, tiếp tục so sánh ghép mảng lại đến lại mảng mảng xếp LOGO Thuật toán  Dãy gồm phần tử coi xếp tăng dần  Giả sử cần xếp dãy a[i j] ta quy về việc xếp dãy a[i k] a[k+1 j] với k nằm i j ( k=(i+j) div 2), sauđó ta hòa nhập dãy xếp thành dãy xếp LOGO Thuật toán Thuật toán hòa nhập dãy đã được sắp xếp  Giả sử có dãy xếp, ta tìm cách hòa nhập dãy lại thành dãy xếp  Ta so sánh phầntử có giá trị nhỏ dãy, chọn phần tử nhỏ đưa dãy xếp riêng loại phần tử khỏi dãy chứa  Lặp lại trình dãy hết chuyển dãy lại vào đuôi dãy xếp LOGO Ví dụ Sắp xếp dãy sau theo phương pháp xếp hòa nhập (Merge Sort ) 12 15 12 15 LOGO Ví dụ 2 12 8 12 12 12 15 15 6 15 15 LOGO Thủ tục  Thủ tục hòa nhập dãy a[i k] và a[k+1 j]: Procedure Merge (var a: mang; I,j,k :integer); Var c: mang ; t, h, i1, j1: Interger; Begin i1:=1; j1:= k+1; t:=I; While (i1

Ngày đăng: 03/10/2017, 21:07

TỪ KHÓA LIÊN QUAN

w