Môn học: Cấu trúc dữ liệu 1

36 288 0
Môn học: Cấu trúc dữ liệu 1

Đ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

Môn học: Cấu trúc liệu Chương 3-Phần 2: Sắp xếp ThS Trương Thị Ngọc Phượng Khoa CNTT Trường ĐHSPKT TP HCM Nội dung I Bài toán xếp II PP đổi chỗ trực tiếp (Interchange sort) III PP chọn trực tiếp (Selection sort) IV PP chèn trực tiếp (Insertion sort) V PP bọt (Bubble sort) VI PP dựa phân hoạch (Quick sort) VII Bài tập Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT I Bài toán xếp  Định nghĩa  Sắp xếp trình xử lý danh sách phần tử để đặt chúng theo thứ tự thỏa mãn tiêu chuẩn dựa nội dung thông tin lưu giữ phần tử  Sắp tăng giảm   Sử dụng kiểu liệu mảng để minh họa  Phân loại  Sắp xếp nội  Sắp xếp ngoại Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT Nội dung I Bài toán xếp II PP đổi chỗ trực tiếp (Interchange sort) III PP chọn trực tiếp (Selection sort) IV PP chèn trực tiếp (Insertion sort) V PP bọt (Bubble sort) VI PP dựa phân hoạch (Quick sort) VII Bài tập Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT IV PP đổi chỗ trực tiếp  Ý tưởng  Xét tất cặp phần tử mảng  Phần tử nhỏ đứng trước  Là phương pháp đơn giản Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT IV PP đổi chỗ trực tiếp  Giải thuật Bước 1: i = 1; Bước 2: j = i+1; Trong mà j ≤ N thực Nếu a[j] < a[i] Hoán vị (a[i], a[j]); j = j+1; end; Bước 3: i = i+1; Nếu i < N: Lặp lại bước 2; Ngược lại: DỪNG Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT IV PP đổi chỗ trực tiếp  Ví dụ i=1, j=2 15 Không hoán vị i=1, j=3 15 HV(a[1], a[3]) i=1, j=4 15 Không hoán vị i=1, j=5 15 Không hoán vị i=1, j=6 15 Không hoán vị i=1, j=7 15 Không hoán vị Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT IV PP đổi chỗ trực tiếp  Ví dụ i=2, j=3 15 HV(a[2], a[3]) DỪNG ………… ………… i=6, j=7 15 Giải thuật dừng Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT IV PP đổi chỗ trực tiếp  Đánh giá giải thuật  Số phép so sánh ?  Số phép hoán vị ?  Độ phức tạp: O(n2) Chương – Phần – Sắp xếp Trương Thị Ngọc Phượng - CNTT - SPKT Nội dung I Bài toán xếp II PP đổi chỗ trực tiếp (Interchange sort) III PP chọn trực tiếp (Selection sort) IV PP chèn trực tiếp (Insertion sort) V PP bọt (Bubble sort) VI PP dựa phân hoạch (Quick sort) VII Bài tập Chương – Phần – Sắp xếp 10 Trương Thị Ngọc Phượng - Nội dung I Bài toán xếp II PP đổi chỗ trực tiếp (Interchange sort) III PP chọn trực tiếp (Selection sort) IV PP chèn trực tiếp (Insertion sort) V PP bọt (Bubble sort) VI PP dựa phân hoạch (Quick sort) VII Bài tập Chương – Phần – Sắp xếp 22 Trương Thị Ngọc Phượng - CNTT - SPKT V PP bọt  Ý tưởng  Phần tử “nhẹ” “nổi” lên phía đầu mảng  Phần tử “nhẹ” “nổi” cao (đứng vị trí nhỏ mảng)   Ngược lại: Phần tử “nặng” “chìm” xuống cuối mảng Chương – Phần – Sắp xếp 23 Trương Thị Ngọc Phượng - CNTT - SPKT V PP bọt  Giải thuật Bước 1: i = 1; Bước 2: j = N; Trong j > i thực hiện: Nếu a[j] < a[j-1] HoánVị(a[j], a[j-1]); j = j-1; end; Bước 3: i = i+1; Nếu i > N-1 DỪNG Ngược lại: Lặp lại Bước 2; Chương – Phần – Sắp xếp 24 Trương Thị Ngọc Phượng - CNTT - SPKT V PP bọt  Ví dụ i=1 15 j=7 i=1 i=1 15 j=5 i=1 i=1 j=4 15 j=6 15 Không hoán vị 15 j=3 Chương – Phần – Sắp xếp 25 Trương Thị Ngọc Phượng - CNTT - SPKT V PP bọt  Ví dụ i=1 i=1 j=2 j=1 15 15 ……………………… Chương – Phần – Sắp xếp 26 15 DỪNG Trương Thị Ngọc Phượng - CNTT - SPKT V PP bọt  Đánh giá giải thuật  Không nhận diện tình trạng có thứ tự hay có thứ tự phần mảng  Phần tử nhỏ đưa vị trí nhanh Phần tử lớn đưa vị trí chậm  Cải tiến: Thuật toán ShakerSort • Lượt đi: Đẩy phẩn tử nhỏ đầu mảng • Lượt về: Đẩy phần tử lớn cuối mảng Chương – Phần – Sắp xếp 27 Trương Thị Ngọc Phượng - CNTT - SPKT V PP bọt  Đánh giá giải thuật  Độ phức tạp: O(n2) Chương – Phần – Sắp xếp 28 Trương Thị Ngọc Phượng - CNTT - SPKT Nội dung I Bài toán xếp II PP đổi chỗ trực tiếp (Interchange sort) III PP chọn trực tiếp (Selection sort) IV PP chèn trực tiếp (Insertion sort) V PP bọt (Bubble sort) VI PP dựa phân hoạch (Quick sort) VII Bài tập Chương – Phần – Sắp xếp 29 Trương Thị Ngọc Phượng - CNTT - SPKT VI PP dựa phân hoạch  Ý tưởng  Cho x=a[k] giá trị phần tử dãy  Phân hoạch dãy ban đầu thành phần x …Dãy 1…… Các phần tử nhỏ x ……Dãy 2… Các phần tử lớn hoac bang x  Tiếp tục phân hoạch dãy  DỪNG dãy có thứ tự Chương – Phần – Sắp xếp 30 Trương Thị Ngọc Phượng - CNTT - SPKT VI PP dựa phân hoạch  Ví dụ Phân hoạch Dãy ban đầu i=1 8 i=2 3 15 j=6 HV(a[1], a[6]) 15 j=5 HV(a[2], a[5]) HV(a[2], a[5]) Dãy Chương – Phần – Sắp xếp 15 Dãy 31 Trương Thị Ngọc Phượng - CNTT - SPKT VI PP dựa phân hoạch  Ví dụ Phân hoạch Dãy 2 15 i=2 j=3 15 1 15 Dãy 1.1 Phân hoạch Dãy 1.1 15 15 Chương – Phần – Sắp xếp 32 Trương Thị Ngọc Phượng - CNTT - SPKT VI PP dựa phân hoạch  Giải thuật void QuickSort(int a[], int left, int right) { int i, j; int x; x = a[(left + right)/2]; i=left; j=right; do{ while(a[i] < x) i++; while(a[j] > x) j ; if(i [...]... thuật Bước 1: i = 1; Bước 2: j = N; Trong khi j > i thực hiện: Nếu a[j] < a[j -1] thì HoánVị(a[j], a[j -1] ); j = j -1; end; Bước 3: i = i +1; Nếu i > N -1 thì DỪNG Ngược lại: Lặp lại Bước 2; Chương 3 – Phần 2 – Sắp xếp 24 Trương Thị Ngọc Phượng - CNTT - SPKT V PP nổi bọt  Ví dụ i =1 6 9 1 3 7 15 2 j=7 i =1 6 9 1 3 7 i =1 6 9 1 3 2 7 15 j=5 i =1 6 9 1 i =1 6 9 1 2 3 j=4 2 3 2 15 j=6 7 15 Không hoán vị 7 15 j=3 Chương... i ... bọt  Ví dụ i =1 15 j=7 i =1 i =1 15 j=5 i =1 i =1 j=4 15 j=6 15 Không hoán vị 15 j=3 Chương – Phần – Sắp xếp 25 Trương Thị Ngọc Phượng - CNTT - SPKT V PP bọt  Ví dụ i =1 i =1 j=2 j =1 15 15 ………………………... đổi chỗ trực tiếp  Ví dụ i =1, j=2 15 Không hoán vị i =1, j=3 15 HV(a [1] , a[3]) i =1, j=4 15 Không hoán vị i =1, j=5 15 Không hoán vị i =1, j=6 15 Không hoán vị i =1, j=7 15 Không hoán vị Chương – Phần... Phượng - CNTT - SPKT VI PP dựa phân hoạch  Ví dụ Phân hoạch Dãy 2 15 i=2 j=3 15 1 15 Dãy 1. 1 Phân hoạch Dãy 1. 1 15 15 Chương – Phần – Sắp xếp 32 Trương Thị Ngọc Phượng - CNTT - SPKT VI PP dựa

Ngày đăng: 23/01/2016, 10:22

Từ khóa liên quan

Mục lục

  • Môn học: Cấu trúc dữ liệu 1

  • Nội dung

  • I. Bài toán sắp xếp

  • Slide 4

  • IV. PP đổi chỗ trực tiếp

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • II. PP chọn trực tiếp

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • III. PP chèn trực tiếp

  • Slide 18

  • Slide 19

  • Slide 20

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

Tài liệu liên quan