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à giải thuật: Chương 6 - Ngô Công Thắng

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

52
lượt xem
1
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à giải thuật - Chương 6: Giải thuật sắp xếp" cung cấp cho người học các kiến thức: Sắp xếp chọn, sắp xếp chèn, sắp xếp nổi bọt, sắp xếp nhanh, sắp xếp vun đống, sắp xếp hòa nhập.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 6 - Ngô Công Thắng

1. Sắp xếp chọn (Selection Sort)<br /> 1.1. Phương pháp<br /> • Giả sử cần sắp xếp tăng dần một dãy khoá<br /> a1, a2,..., an.<br /> • Ý tưởng của thuật toán như sau:<br /> <br /> CHƯƠNG 6<br /> GIẢI THUẬT SẮP XẾP<br /> <br /> – Chọn phần tử có khoá nhỏ nhất .<br /> – Đổi chỗ nó với phần tử a1.<br /> – Sau đó lặp lại thao tác trên với n-1 phần tử<br /> còn lại, rồi lại lặp lại như trên với n-2 phần tử<br /> còn lại,..., cho tới khi chỉ còn 1 phần tử.<br /> <br /> GV. Ngô Công Thắng<br /> Bộ môn Công nghệ phần mềm<br /> Khoa Công nghệ thông tin<br /> Website: dse.vnua.edu.vn/ncthang<br /> Email: ncthang@vnua.edu.vn<br /> <br /> Ngô Công Thắng<br /> <br /> Chương 6: Giải thuật sắp xếp<br /> <br /> Bài giàng CTDL&GT - Chương 06<br /> <br /> 6.3<br /> <br /> 1.1. Phương pháp (tiếp)<br /> <br /> 1. Sắp xếp chọn (Selection Sort)<br /> 2. Sắp xếp chèn (Insert Sort)<br /> 3. Sắp xếp nổi bọt (Bubble Sort)<br /> 4. Sắp xếp nhanh (Quick Sort)<br /> 5. Sắp xếp vun đống (Heap Sort)<br /> 6. Sắp xếp hòa nhập (Merge Sort)<br /> <br /> Ngô Công Thắng<br /> <br /> Bài giàng CTDL&GT - Chương 06<br /> <br /> • Ví dụ:<br /> Cho dãy khoá ban đầu là: 6, 10, 1, 8, 9<br /> với n=5.<br /> i=1 1, 10, 6, 8, 9<br /> i=2 1, 6, 10, 8, 9<br /> i=3 1, 6, 8, 10, 9<br /> i=4 1, 6, 8, 9, 10<br /> 6.2<br /> <br /> Ngô Công Thắng<br /> <br /> Bài giàng CTDL&GT - Chương 06<br /> <br /> 6.4<br /> <br /> 1.1. Phương pháp (tiếp)<br /> <br /> 2. Sắp xếp chèn (Insert Sort)<br /> <br /> Procedure Selection_sort(a,n);<br /> For i:= 1 to n-1 Do<br /> Begin<br /> {Tìm phần tử nhỏ nhất ở vị trí k }<br /> k:=i;<br /> For j:=i+1 To n Do<br /> If a[j] < a[k] then k:=j<br /> {Đổi chỗ phần tử nhỏ nhất k cho phần tử i}<br /> If k ≠ i then a[k]↔a[i];<br /> End<br /> Return<br /> Ngô Công Thắng<br /> <br /> Bài giàng CTDL&GT - Chương 06<br /> <br /> 2.1. Phương pháp<br /> • Phương pháp này được những người chơi bài hay<br /> dùng.<br /> • Giả sử cần sắp xếp tăng dần dãy khoá a1, a2,..., an. Ý<br /> tưởng thuật toán như sau:<br /> – Các phần tử được chia thành dãy đích: a1,..., ai-1 (kết quả)<br /> và dãy nguồn ai,..., an.<br /> – Bắt đầu với i=2, ở mỗi bước phần tử thứ i của dãy nguồn<br /> được lấy ra và chèn vào vị trí thích hợp trong dãy đích sao<br /> cho dãy đích vẫn tăng dần. Sau đó i tăng lên 1 và lặp lại.<br /> 6.5<br /> <br /> Ngô Công Thắng<br /> <br /> • Với giải thuật trình bày ở trên thì phép toán tích cực<br /> là phép so sánh (a[j]
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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