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