intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 5

Chia sẻ: Nqcp Nqcp | Ngày: | Loại File: PDF | Số trang:100

86
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 5 Các thuật toán sắp xếp gồm các nội dung chính được trình bày như sau: Bài toán sắp xếp, ba thuật toán sắp xếp cơ bản, sắp xếp trộn, sắp xếp nhanh, sắp xếp vun đống, cận dưới cho bài toán sắp xếp, các phương pháp sắp xếp đặc biệt,..

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 5

Chương 5 : Các thuật toán sắp xếp<br /> Trịnh Anh Phúc<br /> 1 Bộ<br /> <br /> 1<br /> <br /> môn Khoa Học Máy Tính, Viện CNTT & TT,<br /> Trường Đại Học Bách Khoa Hà Nội.<br /> <br /> Ngày 20 tháng 4 năm 2016<br /> <br /> Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường thuật<br /> Cấu trúc dữ liệu và giải Đại Học Bách Khoa Hà Nội. ) 4 năm 2016<br /> Ngày 20 tháng<br /> <br /> 1 / 92<br /> <br /> Giới thiệu<br /> 1<br /> <br /> Bài toán sắp xếp<br /> <br /> 2<br /> <br /> Ba thuật toán sắp xếp cơ bản<br /> <br /> 3<br /> <br /> Sắp xếp trộn<br /> <br /> 4<br /> <br /> Sắp xếp nhanh<br /> <br /> 5<br /> <br /> Sắp xếp vun đống<br /> <br /> 6<br /> <br /> Cận dưới cho bài toán sắp xếp<br /> <br /> 7<br /> <br /> Các phương pháp sắp xếp đặc biệt<br /> <br /> 8<br /> <br /> Tổng kết<br /> <br /> Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường thuật<br /> Cấu trúc dữ liệu và giải Đại Học Bách Khoa Hà Nội. ) 4 năm 2016<br /> Ngày 20 tháng<br /> <br /> 2 / 92<br /> <br /> Bài toán sắp xếp<br /> Định nghĩa bài toán sắp xếp<br /> Sắp xếp (Sorting) là quá trình tổ chức lại họ các dữ liệu theo thứ tự giảm<br /> dần hoặc tăng dần (ascending or descending order). Dữ liệu cần sắp xếp<br /> có thể là :<br /> Số nguyên (Intergers)<br /> Xâu ký tự (String)<br /> Đối tượng (Object)<br /> Ta cần có khóa sắp xếp (sort key) dùng để phân biệt các dữ liệu với nhau.<br /> Khóa này duy nhất cho từng dữ liệu và được dùng để sắp xếp. Lưu ý,<br /> không có khóa trùng lặp cho hai dữ liệu phân biệt chính bởi vậy các giải<br /> thuật sắp xếp mới thực hiện được.<br /> <br /> Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường thuật<br /> Cấu trúc dữ liệu và giải Đại Học Bách Khoa Hà Nội. ) 4 năm 2016<br /> Ngày 20 tháng<br /> <br /> 3 / 92<br /> <br /> Bài toán sắp xếp<br /> <br /> Lưu ý khi biểu diễn bài toán sắp xếp trong máy tính<br /> Việc sắp xếp tiến hành trực tiếp trên bản ghi dữ liệu đòi hỏi các thao<br /> tác di chuyển tốn kém.<br /> Vì vậy người ta thường xây dựng một bảng khóa gồm các bản ghi chỉ<br /> gồm hai trường là (khóa, con trỏ) :<br /> trường "khóa" chứa giá trị khóa<br /> trường "con trỏ" chứa địa chỉ trỏ đến các bản ghi dữ liệu tương ứng<br /> <br /> Việc sắp xếp theo khóa trong bảng khóa trên không đòi hỏi di chuyển<br /> các bản ghi dữ liệu - trong bảng chính, nhưng trình tự các bản ghi<br /> trong bảng khóa cho phép xác định trình tự các bản ghi dữ liệu trong<br /> bản chính.<br /> <br /> Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường thuật<br /> Cấu trúc dữ liệu và giải Đại Học Bách Khoa Hà Nội. ) 4 năm 2016<br /> Ngày 20 tháng<br /> <br /> 4 / 92<br /> <br /> Bài toán sắp xếp<br /> <br /> Mô tả giải thuật của bài toán sắp xếp<br /> Đầu vào : Dãy gồm n khóa A = (a1 , a2 , · · · , an )<br /> Đầu ra : Một hoán vị của dãy A là dãy A = (a1 , a2 , · · · , an ) sao cho<br /> dãy thỏa mãn<br /> a1 ≤ a2 ≤ · · · ≤ an<br /> <br /> Độ quan trọng của thuật toán sắp xếp<br /> <br /> 40% thời gian hoạt động của máy tính là dành cho<br /> việc sắp xếp - D.Knuth<br /> <br /> Trịnh Anh Phúc ( Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường thuật<br /> Cấu trúc dữ liệu và giải Đại Học Bách Khoa Hà Nội. ) 4 năm 2016<br /> Ngày 20 tháng<br /> <br /> 5 / 92<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
5=>2