Bài giảng Phân tích thiết kế giải thuật: Chương 2 - Trịnh Huy Hoàng

98 5 0
Bài giảng Phân tích thiết kế giải thuật: Chương 2 - Trịnh Huy Hoàng

Đ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

Trong lĩnh vực Công Nghệ Thông Tin nói riêng, yêu cầu quan trọng nhất của người học đó chính là thực hành. Có thực hành thì người học mới có thể tự mình lĩnh hội và hiểu biết sâu sắc với lý thuyết. Với ngành mạng máy tính, nhu cầu thực hành được đặt lên hàng đầu. Tuy nhiên, trong điều kiện còn thiếu thốn về trang bị như hiện nay, người học đặc biệt là sinh viên ít có điều kiện thực hành. Đặc biệt là với các thiết bị đắt tiền như Router, Switch chuyên dụng

Chương 2: Phân tích thuật tốn xếp tìm kiếm Trịnh Huy Hồng Khoa Cơng nghệ thơng tin Đại học Sư phạm TPHCM Mục đích  Áp dụng kí pháp O lớn để phân tích đánh giá phương pháp xếp: – – – – – – – – – – Sắp xếp phương pháp chọn (selection sort) Sắp xếp phương pháp chèn (insertion sort) Sắp xếp phương pháp đổi chỗ (interchange sort) Sắp xếp phương pháp bọt (bubble sort) Sắp xếp phương pháp Shell (Shell Sort) Sắp xếp phương pháp trộn (merge sort) Sắp xếp phương pháp vun đống (heap sort) Sắp xếp nhanh (quick sort) Sắp xếp phương pháp thẻ (bucket sort) Sắp xếp phương pháp số (radix sort) Sắp xếp phương pháp chọn    Ý tưởng: – Tìm phần tử nhỏ đưa đầu dãy – Tiếp tục thực phần lại dãy Thuật toán: Algorithm selectSort(A) Input: Một mảng n phần tử số A Output: Mảng A xếp tăng dần For i ← to n-1 ← i For j ← i+1 to n if A[j] < A[min] then ← j swap(A, i, min) Return array A Phân tích SX pp chọn   Vịng lặp ngồi (biến i) thi hành n-1 lần: O(n) – Tăng i: n-1 lần – Kiểm tra i: n lần – Gán i vào min: n-1 lần – Đổi chỗ: tối đa n-1 lần Với giá trị i, vòng lặp (biến j) thi hành n-1i lần  tổng cộng (n-1) + (n-2) + … + = (n-1)n/2 lần: O(n2) – So sánh: (n-1)n/2 lần – Gán: tối đa (n-1)n/2 lần Phân tích SX pp chọn (tt)  Thời gian thực thi:  T(n) = O(n) + O(n2) = O(n2+n) = O(n2) Sắp xếp phương pháp chèn    Ý tưởng: – Chèn phần tử vào dãy xếp đến bước tại, vào vị trí để bảo đảm sau chèn dãy có thứ tự Thuật tốn: Algorithm insertSort(A) Input: Một mảng n phần tử số A Output: Mảng A xếp tăng dần For i ← to n temp ← A[i] j←i-1 while temp 0 A[j+1] ← A[j] j←j-1 A[j+1] ← temp Return array A Phân tích thuật tốn SX pp chèn  Vòng – – – lặp for (biến i) thực n-1 lần Tăng i: n-1 lần So sánh i với n: n lần Gán giá trị vào biến temp, j, A[j+1]: n lần  Với giá trị i, thân vòng lặp while (biến j) tối thiểu thực lần tối đa thực i lần – – – Tmin(n) = n-1 Tmax(n) = 1+…+(n-1) = (n-1)n/2 = O(n2) Ttb(n) = ½Tmax(n) Sắp xếp phương pháp đổi chỗ  Ý tưởng: –   Xuất phát từ đầu dãy, tìm tất nghịch chứa phần tử này, triệt tiêu chúng cách đổi chỗ phần tử với phần tử tương ứng cặp nghịch Thuật toán: Algorithm interchangeSort(A) Input: Một mảng n phần tử số A Output: Mảng A xếp tăng dần For i ← to n-1 For j ← i+1 to n if A[j] < A[i] then swap(A,j,i) Return array A Phân tích SX pp đổi chỗ  Vịng – – lặp for ngồi (biến i) thi hành n lần Tăng i: n-1 lần So sánh i: n lần  Với giá trị i, vòng lặp for (biến j) thi hành (n-1-i) lần – – – – Tăng j: n(n-1)/2 lần So sánh j: n(n+1)/2 lần Phép so sánh: n(n-1)/2 lần Phép đổi chỗ: tối đa n(n-1)/2 lần Phân tích SX pp đổi chỗ  Thời gian thực thi: T(n) = O(n) + O(n2) = O(n2) 10

Ngày đăng: 02/07/2023, 11:15

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

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

Tài liệu liên quan