Thuật toán sắp xếp nổi bọt hay tráo đổi

10 3.2K 47
Thuật toán sắp xếp nổi bọt hay tráo đổi

Đang tải... (xem toàn văn)

Thông tin tài liệu

THÂN CHÀO TẬP THỂ LỚP VÀ QUÝ THẦY CÔ GIÁO 06/27/13 BÀI 4: GIỚI THIỆU THUẬT TOÁN Tiết 13: Bài toán sắp xếp GVTH: Nguyễn Ngọc Giao Ngôn Giới thiệu bài toán sắp xếp Những việc hằng ngày liên quan đến sắp xếp :  Sắp xếp sách vở .  Xếp hàng chào cờ .  Sắp xếp tên học sinh .  Xếp điểm trung bình của học sinh .  . . . . . . Làm sao máy tính sắp xếp được như chúng ta ?  Nạp chương trình sắp xếp vào máy.  Xây dựng thuật toán sắp xếp cho máy. Giới thiệu bài toán sắp xếp Ta xét bài toán dạng đơn giản sau : Cho dãy số nguyên A gồm n phần tử : a 1 , a 2 , a 3 , . . . , a n Vấn đề đặt ra là cần bố trí lại các phần tử của A sao cho sau khi sắp xếp xong thì A trở thành dãy không giảm , nghóa là điều kiện a i a i+1 với 0 <i<n. Ví dụ : dãy A có 6 phần tử :15 ; 8 ; 12 ; 11 ; 13 ; 9 dãy sau khi sắp xếp: 8 ; 9 ; 11 ; 12 ; 13 ; 15 ≤ 15 8 12 11 13 9 Nhận xét:  Tiến hành duyệt từ trái sang với hai số đứng liền kề nhau nếu số đứng sau bé hơn số đứng trước thì tiến hành đổi chỗ.  Sau mỗi lần đổi chỗ ,Phần tử lớn nhất sẽ chuyển dần về cuối dãy.  Sau một lần duyệt ,Phần tử lớn nhất sẽ nằm ở cuối dãy.  Việc đó lặp đi lặp lại cho đến khi mọi phần tử trong dãy đều đã xếp đúng thứ tự (số đứng sau không bé hơn số đứng trước) Quan sát và cho nhận xét cách sắp xếp trên 15 8 12 11 13 915 8 12 11 13 9  Nhập vào N và dãy N phần tử.  Dùng biến i để thực hiện việc so sánh các phần tử kề nhau từ trái qua ,Nếu a i >a i+1 thì tráo đổi và tăng i lên để so sánh với phần tử tiếp theo.  Dùng biến M để kiểm tra quá trình sắp xếp ,ban đầu M=N,khi i > M thì kết thúc một lần duyệt ;sau một lần duyệt thì số phần tử chưa sắp xếp giảm đi 1 tức là M giảm đi 1.  Khi M=1 (chỉ còn một phần tử chưa sắp xếp),đưa ra dãy đã sắp xếp rồi kết thúc.  Bước 1: Nhập N và các số hạng a 1 , a 2 ,. . . , a N  Bước 2: M N  Bước 3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp rồi kết thúc.  Bước 4: M M-1 ; i 0  Bước 5: i i+1  Bước 6: Nếu i > M thì quay lại bước 3.  Bước 7: Nếu a i >a i+1 thì hoán đổi a i và a i+1 cho nhau.  Bước 8: Quay lại bước 5. Nhập N và a 1 ,a 2 ,. . . . ,a n Hoán vò a i và a i+1 Đưa ra A rồi kết thúc Đúng Sai M < 2 i > M ? a i > a i+1 M N M M-1; i 0 i i +1 Sai Đúng Sai Đúng Sai Đưa ra A rồi kết thúc Đúng M < 2 Sai i > M ? M = M = ; i = i = Sai Đúng Đúng Dãy 6 phần tử 15;8;12;11;13;9 6 a 1 > a 2 Hoán vò a 1 và a 2 15 8 5 0 5 15 8 12 11 13 9 1 2 a 2 > a 3 Hoán vò a 2 và a 3 15 12 3 a 3 > a 4 Hoán vò a 3 và a 4 15 11 4 a 4 > a 5 Hoán vò a 4 và a 5 15 13 a 5 > a 6 Hoán vò a 5 và a 6 15 9 6 4 1 a 1 > a 2 8 12 2 a 2 > a 3 Hoán vò a 2 và a 3 12 11 3 a 3 > a 4 12 13 4 a 4 > a 5 Hoán vò a 4 và a 5 13 9 5 3 1 a 1 > a 2 8 11 2 a 2 > a 3 11 12 3 a 3 > a 4 Hoán vò a 3 và a 4 12 9 4 2 1 a 1 > a 2 8 11 2 a 2 > a 3 Hoán vò a 2 và a 3 11 9 3 1 1 a 1 > a 2 8 9 2 CỦNG CỐ Giả sử ta có danh sách tên học sinh của một tổ học tập là: Tuấn ; Phan ; Nam ; Hà ; Lan ; Bình ; Xuân. Câu 1: Danh sách nào dưới đây là kết quả sau lần duyệt thứ nhất khi thực hiện thuật toán sắp xếp Bubble sort. a. Tuấn ; Phan ; Nam ; Hà ; Lan ; Bình ; Xuân. b. Phan ; Tuấn ; Hà ; Nam ; Bình ; Lan ; Xuân. c. Phan ; Nam ; Hà ; Lan ; Bình ; Tuấn ; Xuân. d. Xuân ; Tuấn ; Phan ; Nam ; Hà ; Lan ; Bình. Nam Hà Lan Bình XuânTuấn Phan Trả lời Đáp án : C Câu 2: Với danh sách trên ,thuật toán cần phải thực hiện bao nhiêu lần duyệt danh sách ? Nam Hà Lan Bình XuânTuấn Phan LẦN DUYỆT THỨ ĐÁP ÁN : D A. 4 lần C. 6 lần B. 5 lần D. 7 lần . THIỆU THUẬT TOÁN Tiết 13: Bài toán sắp xếp GVTH: Nguyễn Ngọc Giao Ngôn Giới thiệu bài toán sắp xếp Những việc hằng ngày liên quan đến sắp xếp :  Sắp xếp. chúng ta ?  Nạp chương trình sắp xếp vào máy.  Xây dựng thuật toán sắp xếp cho máy. Giới thiệu bài toán sắp xếp Ta xét bài toán dạng đơn giản sau : Cho

Ngày đăng: 27/06/2013, 11:46

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan