bài giảng cấu trúc dữ liệu và giải thuật chương 6: sắp xếp - ths. nguyễn thị khiêm hòa

78 677 0
bài giảng cấu trúc dữ liệu và giải thuật chương 6: sắp xếp - ths. nguyễn thị khiêm hòa

Đ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

Chương 6: Sắp xếp Giảng viên: Ths Nguyễn Thị Khiêm Hịa Khoa Cơng nghệ Thơng tin - Đại học Ngân hàng TP.HCM Nội dung     Các phương pháp xếp Đánh giá phương pháp Quick_Sort Heap_Sort Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Mục tiêu Trình bày thuật tốn thơng dụng cho việc xếp (sắp xếp nhớ - RAM)  Minh họa thuật tốn  Đánh giá thuật tốn  Khoa Cơng nghệ Thông tin - Đại học Ngân hàng TP.HCM Đặt vấn đề Trong công việc hàng ngày tốn quản lý kinh tế cần tìm kiếm liệu  Dễ dàng  Nhanh chóng  Ví dụ: danh sách sinh viên, từ điển …  Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Sắp xếp (Sorting) Định nghĩa  Sắp xếp trình tổ chức lại tập hợp k đối tượng theo trật tự  Hai mơ hình xếp  Sắp xếp (internal), phần tử cần xếp lưu sẵn RAM  Sắp xếp (external), số phần tử cần xếp lưu RAM, lại lưu nhớ ngồi  Khoa Cơng nghệ Thơng tin - Đại học Ngân hàng TP.HCM Các phương pháp xếp Phương pháp xếp kiểu lựa chọn  Phương pháp xếp chèn  Phương pháp xếp đổi chỗ  Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Phương pháp xếp kiểu lựa chọn (Selection Sort) Ý tưởng:  Tìm phần tử nhỏ đem đầu dãy  Loại phần tử khỏi dãy  Tiếp tục tìm phần tử nhỏ dãy cịn lại  Thuật tốn:  Ở bước thứ i ta chọn Ai, Ai+1, …, An phần tử có khóa nhỏ đổi chỗ với Ai  Sau n lượt ta có dãy A thứ tự  Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Phương pháp xếp kiểu lựa chọn (Selection Sort)  Ví dụ: Cho dãy số: i=7 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Phương pháp xếp kiểu lựa chọn (Selection Sort) public void SelectionSort() { int min,vt; for (int i = 0; i < idx-1; i++) { = A[i]; vt = i; for (int j = i + 1; j < idx; j++) { if (A[j] < min) { = A[j]; vt = j; } } if (vt != i) { A[vt] = A[i]; A[i] = min; } } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM } Phương pháp xếp chèn (Insertion Sort)  Thuật toán:  Dãy ban đầu A1,A2,…,An xem có đoạn gồm phần tử A1  Thêm A2 vào A1 có đoạn A1A2  Thêm A3 vào A1A2 có đoạn A1A2 A3  Tiếp tục thêm xong An vào đoạn A1,A2,…,An-1 có dãy A1,A2,…,An xếp Khoa Cơng nghệ Thông tin - Đại học Ngân hàng TP.HCM 10 Phương pháp xếp Heap (Heap_Sort) 2 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 64 Phương pháp xếp Heap (Heap_Sort) 2 8 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 65 Phương pháp xếp Heap (Heap_Sort) 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 66 Phương pháp xếp Heap (Heap_Sort) 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 67 Phương pháp xếp Heap (Heap_Sort) 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 68 Phương pháp xếp Heap (Heap_Sort) 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 69 Phương pháp xếp Heap (Heap_Sort) 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 70 Phương pháp xếp Heap (Heap_Sort) 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 71 Phương pháp xếp Heap (Heap_Sort) 5 12 15 10 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 72 Phương pháp xếp Heap (Heap_Sort) public void Heap_Sort() { int right = idx - 1; Create_Heap(); while (right > 0) { int tmp = A[0]; A[0] = A[right]; A[right] = tmp; right ; Shift(0, right); } } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 73 Phương pháp xếp Heap (Heap_Sort) private void Create_Heap() { int left =(idx-1)/2; while (left >= 0) { Shift(left, idx - 1); left ; } } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 74 Phương pháp xếp Heap (Heap_Sort) private void Shift(int left, int right) { int i = left; int j = * i + 1; int x = A[i]; while (j

Ngày đăng: 02/07/2014, 17:43

Từ khóa liên quan

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

Tài liệu liên quan