BÀI GIẢNG: Các thuật toán xếp- Cấu trúc dữ liệu và giải thuật

20 2 0
BÀI GIẢNG: Các thuật toán xếp- Cấu trúc dữ liệu và giải thuật

Đ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

Giảng viên: Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến Heap Sort Quick Sort Radix Sort Selection Sort Merge Sort Cấu trúc liệu giải thuật – HCMUS 2013 Bài toán xếp Các thuật toán xếp Cấu trúc liệu giải thuật – HCMUS 2013    Bài tốn xếp: Sắp xếp q trình xử lý danh sách phần tử để đặt chúng theo thứ tự thỏa yêu cầu cho trước Ví dụ: danh sách trước xếp: {1, 25, 6, 5, 2, 37, 40} Danh sách sau xếp: {1, 2, 5, 6, 25, 37, 40} Thông thường, xếp giúp cho việc tìm kiếm nhanh Cấu trúc liệu giải thuật – HCMUS 2013  Các phương pháp xếp thông dụng:  Bubble Sort  Selection Sort  Insertion Sort  Quick Sort  Merge Sort  Heap Sort  Radix Sort Cần tìm hiểu phương pháp xếp lựa chọn phương pháp phù hợp sử dụng Cấu trúc liệu giải thuật – HCMUS 2013 Selection Sort Cấu trúc liệu giải thuật – HCMUS 2013  Mô cách xếp tự nhiên thực tế  Chọn phần tử nhỏ đưa vị trí đầu dãy hành  Sau xem dãy hành cịn n-1 phần tử  Lặp lại dãy hành phần tử Cấu trúc liệu giải thuật – HCMUS 2013 Các bước thuật toán:  Bước Khởi gán i =  Bước Bước lặp: Tìm a[min] nhỏ dãy từ a[i] đến a[n-1]  2.2 Hoán vị a[min] a[i]  2.1  Bước So sánh i n:  Nếu i < n tăng i thêm lặp lại bước  Ngược lại: Dừng thuật toán Cấu trúc liệu giải thuật – HCMUS 2013 i=0 15 17 i=1 15 17 i=2 15 17 i=3 15 17 i=4 15 17 i=5 15 17 i=6 15 17 i=7 15 17 Cấu trúc liệu giải thuật – HCMUS 2013 10  Đánh giá giải thuật:  Số phép so sánh:  Tại lượt i cần (n-i-1) số lần so sánh  Khơng phụ thuộc vào tình trạng dãy số ban đầu Số phép so sánh = n(n  1) (n  i  1)   i 0 n 1 Cấu trúc liệu giải thuật – HCMUS 2013 11  Số phép gán:  Tốt nhất: n 1   4n i 0  Xấu nhất: n( n  7) (4  n  i  1)   i 0 n 1 Cấu trúc liệu giải thuật – HCMUS 2013 12 Heap Sort Cấu trúc liệu giải thuật – HCMUS 2013 13   Ý tưởng: tìm phần tử nhỏ bước i, phương pháp Selection sort không tận dụng thơng tin có nhờ vào phép so sánh bước i-1  cần khắc phục nhược điểm J Williams đề xuất phương pháp xếp Heapsort Cấu trúc liệu giải thuật – HCMUS 2013 14  Định nghĩa Heap:  Giả sử xét trường hợp xếp tăng dần, Heap định nghĩa dãy phần tử al, al+1, … ar thỏa: với i thuộc [l,r] (chỉ số 0) ≥ a2i+1 ≥ a2i+2 {(ai,a2i+1), (ai,a2i+2) cặp phần tử liên đới} Cấu trúc liệu giải thuật – HCMUS 2013 15   Nếu al, al+1, … ar heap phần tử al (đầu heap) ln phần tử lớn Mọi dãy ai, ai+1, … ar với 2i + > r heap Cấu trúc liệu giải thuật – HCMUS 2013 16   Giai đoạn 1: Hiệu chỉnh dãy ban đầu thành heap (bắt đầu từ phần tử dãy) Giai đoạn 2: xếp dựa heap  Bước 1: đưa phần tử lớn vị trí cuối dãy  Bước 2:  Loại bỏ phần tử lớn khỏi heap: r = r –  Hiệu chỉnh lại phần lại dãy  Bước 3: So sánh r l:  Nếu r > l lặp lại bước  Ngược lại, dừng thuật toán Cấu trúc liệu giải thuật – HCMUS 2013 17  Mã giả : HeapSort(a: Array, n: int) { TaoHeap(a,n-1); r = n-1; while(r > 0) { HoanVi(a[0], a[r]); r = r - 1; HieuChinh(a,0,r); } } Cấu trúc liệu giải thuật – HCMUS 2013 18  Mã giả: TaoHeap (a: Array, r: int) { int l = r/2; while(l > 0) { HieuChinh(a,l,r); l = l - 1; } } Cấu trúc liệu giải thuật – HCMUS 2013 19  Mã giả: HieuChinh(a: { i = l; j = while(j

Ngày đăng: 22/06/2022, 19:58

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

Tài liệu liên quan