1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiến trúc máy tính phần 11

18 450 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

Hôm Các phương pháp xếp Giao tập lớn Sorting Bài 11 Sắp xếp (Sorting) Sorting Sorting Bài toán Input:   Dãy phần tử (và thứ tự) (Dãy phần tử thường lưu mảng.) Output:   Dãy phần tử theo thứ tự tăng giảm dần theo một vài thuộc tính (các thuộc tính gọi thuộc tính khóa) Thuộc tính khóa xếp theo hàm logic, ví dụ ( A[j].Key then posmin ← j ; if posmin ≠ i then swap (A[i], A[posmin]); Sorting 11 Chứng minh thời gian chạy thuật toán trường hợp xấu O(n2) ? Sorting 12 Thời gian chạy for i ← to n-1 posmin ← i ; for j ← i+1 to n if A[posmin].Key < A[j].Key then posmin ← j ; if posmin ≠ i then swap (A[i], A[posmin]); n+2 n-i 1 Thời gian chạy thuật toán T(n) = (n+2) +4* [(n-1)+(n-2)+ +1] + 9*(n-1) Thời gian chạy thuật toán O(n 2) Sorting 13 Ví dụ: Mô tả trình xếp dãy số 12 43 11 34 Sorting 23 435 14 Sắp xếp chèn – Insertion sort Ý tưởng: Lấy phần tử thứ A[j] chèn vào dãy gồm phần tử từ A[1] A[j-1] cho ta dãy A[1] A[j] Trong dãy A[1] A[j-1] dãy Ví dụ xếp dãy sau theo thứ tự tăng dần: Sorting 4 5 3 1 5 15 Thuật toán Algorithm InsertionSort(Array A, n) Input: Mảng A có n phần tử Output: Mảng A theo thứ tự tăng dần khóa for i ← to n j ← i-1; x ← A[i]; while (A[j].Key>x.Key) and (j>0) A[j+1] ← A[j]; j ← j-1; A[j+1] ← x; Sorting 16 Chứng minh thời gian chạy thuật toán trường hợp xấu O(n2) ? Sorting 17 Ví dụ: Mô tả trình xếp dãy số 12 43 11 34 23 43 Sorting 12 435 18 [...]... toán T(n) = (n+2) +4* [(n-1)+(n-2)+ +1] + 9*(n-1) Thời gian chạy của thuật toán là O(n 2) Sorting 13 Ví dụ: Mô tả quá trình sắp xếp của dãy số 12 43 11 34 Sorting 23 435 14 Sắp xếp chèn – Insertion sort Ý tưởng: Lấy phần tử thứ A[j] chèn vào dãy gồm các phần tử từ A[1] A[j-1] sao cho ta được dãy A[1] A[j] được sắp Trong đó dãy A[1] A[j-1] là dãy đã được sắp Ví dụ sắp xếp dãy sau theo thứ tự tăng dần:...Thuật toán Algorithm SelectionSort(Array A, n) Input: Mảng A có n phần tử Output: Mảng A được sắp theo thứ tự tăng dần của khóa for i ← 1 to n-1 do posmin ← i ; for j ← i+1 to n do if A[posmin].Key > A[j].Key then posmin ← j ; if posmin ≠ i then swap (A[i], A[posmin]); Sorting 11 Chứng minh thời gian chạy của thuật toán trong trường hợp xấu nhất là O(n2) ? Sorting 12 Thời... InsertionSort(Array A, n) Input: Mảng A có n phần tử Output: Mảng A được sắp theo thứ tự tăng dần của khóa for i ← 2 to n do j ← i-1; x ← A[i]; while (A[j].Key>x.Key) and (j>0) do A[j+1] ← A[j]; j ← j-1; A[j+1] ← x; Sorting 16 Chứng minh thời gian chạy của thuật toán trong trường hợp xấu nhất là O(n2) ? Sorting 17 Ví dụ: Mô tả quá trình sắp xếp của dãy số 12 43 11 34 23 43 Sorting 12 435 18 ...Bài 11 Sắp xếp (Sorting) Sorting Sorting Bài toán Input:   Dãy phần tử (và thứ tự) (Dãy phần tử thường lưu mảng.) Output:   Dãy phần tử theo thứ tự tăng giảm dần theo một vài thuộc tính. .. Output:   Dãy phần tử theo thứ tự tăng giảm dần theo một vài thuộc tính (các thuộc tính gọi thuộc tính khóa) Thuộc tính khóa xếp theo hàm logic, ví dụ (

Ngày đăng: 04/12/2015, 03:52

Xem thêm: Kiến trúc máy tính phần 11