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

Bài giảng Kỹ thuật lập trình: Thuật toán - GV. Hà Đại Dương

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

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

Bài giảng trình bày về khái niệm, cách biểu diễn thuật toán sắp xếp (sắp xếp chọn, sắp xếp chèn, sắp xếp nổi bọt) và thuật toán tìm kiếm (tìm kiếm tuần tự và tìm kiếm nhị phân). Để biết rõ hơn về nội dung chi tiết của bài giảng, mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Thuật toán - GV. Hà Đại Dương

10/25/2016<br /> <br /> Kỹ thuật lập trình<br /> <br /> Tuần 10 - Thuật toán<br /> Giáo viên: Hà Đại Dương<br /> duonghd@mta.edu.vn<br /> <br /> 10/25/2016<br /> <br /> 1<br /> <br /> Nội dung<br /> 1. Thuật toán (Khái niệm, Biểu diễn)<br /> 2. Thuật toán sắp xếp<br /> – Sắp xếp chọn<br /> – Sắp xếp chèn<br /> – Sắp xếp nổi bọt<br /> <br /> 3. Thuật toán tìm kiếm<br /> – Tuần tự<br /> – Nhị phân<br /> <br /> 4. Bài tập<br /> 10/25/2016<br /> <br /> 2<br /> <br /> Thuật toán<br /> <br /> 10/25/2016<br /> <br /> 3<br /> <br /> 1<br /> <br /> 10/25/2016<br /> <br /> Khái niệm<br /> • Một thuật toán là một bản liệt kê các chỉ dẫn,<br /> các quy tắc cần thực hiện theo từng bước xác<br /> định nhằm giải quyết một bài toán đã cho<br /> trong một khoảng thời gian hữu hạn.<br /> • Tai sao cần thuật toán?? Chuyển thành<br /> chương trình (ngôn ngữ nào đó) 1 cách dễ<br /> dàng và đúng đắn.<br /> • Ví dụ: Mô tả thuật toán giải quyết bài toán tìm<br /> phần tử lớn nhất trong dãy có n số cho trước.<br /> 10/25/2016<br /> <br /> 4<br /> <br /> Mô tả thuật toán tìm số lớn nhất<br /> 1. Chỉ số phần tử lớn nhất tạm thời (LNTT) = chỉ<br /> số phần tử đầu tiên;<br /> 2. So sánh số tiếp theo với giá trị LNTT, nếu lớn<br /> hơn giá trị LNTT thì đặt:<br />  Chỉ số phần tử LNTT = chỉ số phần tử đó;<br /> <br /> 3. Nếu còn phần tử trong dãy -> lặp lại bước 2).<br /> 4. Phần tử LNTT ở thời điểm này chính là phần<br /> tử lớn nhất trong dãy (cần tìm).<br /> 10/25/2016<br /> <br /> 5<br /> <br /> Dạng giả mã<br /> <br /> 10/25/2016<br /> <br /> 6<br /> <br /> 2<br /> <br /> 10/25/2016<br /> <br /> Tính chất của TT …<br /> 1. Tính chính xác: để đảm bảo kết quả tính<br /> toán hay các thao tác mà máy tính thực<br /> hiện được là chính xác.<br /> 2. Tính rõ ràng: Thuật toán phải được thể<br /> hiện bằng các câu lệnh minh bạch; các<br /> câu lệnh được sắp xếp theo thứ tự nhất<br /> định.<br /> <br /> 10/25/2016<br /> <br /> 7<br /> <br /> Tính chất của TT …<br /> 3. Tính khách quan: Một thuật toán dù<br /> được viết bởi nhiều người trên nhiều máy<br /> tính vẫn phải cho kết quả như nhau.<br /> 4. Tính phổ dụng: Thuật toán không chỉ áp<br /> dụng cho một bài toán nhất định mà có<br /> thể áp dụng cho một lớp các bài toán có<br /> đầu vào tương tự nhau.<br /> 5. Tính kết thúc: Thuật toán phải gồm một<br /> số hữu hạn các bước tính toán.<br /> 10/25/2016<br /> <br /> 8<br /> <br /> Biểu diễn thuật toán<br /> • Có 3 cách biểu diễn thuật toán:<br /> – Dùng ngôn ngữ tự nhiên<br /> – Sơ đồ khối và<br /> – Giả mã.<br /> <br /> • Dùng ngôn ngữ tự nhiên: mô tả các bước xử lý<br /> bằng ngôn ngữ viết.<br /> <br /> 10/25/2016<br /> <br /> 9<br /> <br /> 3<br /> <br /> 10/25/2016<br /> <br /> Mô tả dữ liệu vào/ra<br /> • Dữ liệu đầu vào: Một thuật toán phải mô tả rõ<br /> các giá trị đầu vào từ một tập hợp các dữ liệu<br /> xác định. Ví dụ, dãy số nguyên a(1), a(2), ...,<br /> a(n), với n a k<br /> <br /> END<br /> <br /> YES<br /> <br /> k=i<br /> <br /> 10/25/2016<br /> <br /> 13<br /> <br /> Giả mã<br /> • Sử dụng ngôn ngữ tự nhiên kết hợp với một<br /> ngôn ngữ lập trình.<br /> • Cần tuân thủ quy tắc của một ngôn ngữ:<br /> – Có các cấu trúc cơ bản: tuần tự, lặp và rẽ nhánh.<br /> – Có hệ thống từ khóa, từ điển (phụ thuộc vào bài<br /> toán).<br /> <br /> • Dễ hiểu, dễ cài đặt.<br /> <br /> 10/25/2016<br /> <br /> 14<br /> <br /> Ví dụ<br /> <br /> 10/25/2016<br /> <br /> 15<br /> <br /> 5<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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