TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢI
Số trang: 35
Loại file: ppt
Dung lượng: 1.74 MB
Lượt xem: 21
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nhị PhânÝ Tưởng : Phạm vi tìm kiếm ban đầu của chúng ta là từ phần tử đầu tiên của dãy (Left = 1)cho đến phần tử cuối cùng của dãy (Right = N). So sánh giá trị X với giá trị phần tử đứng ở giữa của dãy M là M[Mid]. Nếu X = M[Mid]: Tìm thấy Nếu X M[Mid]: Rút ngắn phạm vi tìm kiếm về nửa sau của dãy M (Left = Mid+1) Lặp lại quá trình này cho đến khi tìm thấy phần tử có giá trị X hoặc phạm vi tìmkiếm của chúng ta...
Nội dung trích xuất từ tài liệu:
TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢICHƯƠNG I : TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GI ẢICHƯƠNG II : MỘT SỐ THUẬT TOÁN TÌM KIẾM VÀ SẮP XẾPCHƯƠNG III : DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢICHƯƠNG IV : CÂYI. KHÁI NIỆM & KHAI BÁO BIẾN 6 n 4 14 22 38 27 15 a 0 1 2 3 4 5 6 7 8 Cú pháp khai báo các phần tử của mảng #define size 200 int n; // số phần tử thực tế [size];II. MỘT SỐ TÁC VỤ CƠ BẢN #include #define size 200 1. Nhập & Xuất mảng int a[size]; void main() { int n, i; //Nhap so phan tu cin >> n //Nhap day for (i=0;i> a[i]; //Xuat day for (i=0;iII. MỘT SỐ TÁC VỤ CƠ BẢN 1. Nhập & Xuất mảng void Input (int mang[ ], int n) void Output (int mang[ ], int n) { { int i; int i; for (i = 0 ; i < n ; i++) for (i = 0 ; i < n ; i++) { cout II. MỘT SỐ TÁC VỤ CƠ BẢN 2. Chèn 1 phần tử x vào mảng tại vị trí thứ k 4 14 19 15 22 38 27 a 0 1 2 3 4 5 6 7 8 kvoid Insert (int x, int a[ ], int& n, int k) n=6 n=7{ int i; if ( k > n + 1 ) cout II. MỘT SỐ TÁC VỤ CƠ BẢN 2. Xóa 1 phần tử x trong mảng tại vị trí thứ k 4 22 27 15 38 14 A 0 1 2 3 4 5 6 7 8 k n=5 n=6void Delete (int a[ ], int& n , int k){ int i; if ( k > n ) cout II. TÌM KIẾM1. Tuần tự Ý Tưởng : 1 2 n 3 5 10 13 6 9 a[0] a[n-1] i=0 i=1 i=2 i=3 i=4 i=5 i 3 -1 Tìm thấy tại vị trí 4 13 19 Tìm không thấyII. TÌM KIẾM1. Tuần tự Ý Tưởng : Duyệt từ đầu đến phần tử cần tìm Nếu tìm thấy thì dừng, ngược lại thì duyệt tới cuối mảng thì cho kết quả tìm không thấyII. TÌM KIẾM1. Tuần tự Giải thuật : Bước 1 : Cho i = 0 Bước 2 : Nếu a[i] == x thì dừng chương trình, xuất kết quả tìm th ấy Bước 3 : Ngược lại tăng i lên một đơn vị Bước 4 : Lặp lại bước 2 và 3 đến khi i >= n thì qua bước 5 Bước 5 : Kết luận không tìm thấyII. TÌM KIẾM1. Tuần tự Giải thuật : Cài đặt chương trình int Sequence_Search (int a[ ], int n, int x)Input :Hàm Sequence_Search {Cho i = 0 a : mảng int i = 0; do x : giá trị phần tử cần tìm x : giá trị phần tử cần tìmThực hiện { Nếu a[i] == x thì if (a[i] == x) dừng ct, trả về kết quả tìm thấy return i;Output : else ngược lại tăng i thêm 1 i++; i : vị trí của x trong mảngLặp lại thực hiện đến khi i >= n } while (i < n); -1 : tìm không thấy return -1;Trả về kết quả tìm không thấy }II. TÌM KIẾM2. Nhị phân 3 5 10 13 16 19 23 25 30 33 36 49 Left Right a[m] a[m] a[m] m Tìm thấy tại36 ...
Nội dung trích xuất từ tài liệu:
TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢICHƯƠNG I : TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GI ẢICHƯƠNG II : MỘT SỐ THUẬT TOÁN TÌM KIẾM VÀ SẮP XẾPCHƯƠNG III : DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢICHƯƠNG IV : CÂYI. KHÁI NIỆM & KHAI BÁO BIẾN 6 n 4 14 22 38 27 15 a 0 1 2 3 4 5 6 7 8 Cú pháp khai báo các phần tử của mảng #define size 200 int n; // số phần tử thực tế [size];II. MỘT SỐ TÁC VỤ CƠ BẢN #include #define size 200 1. Nhập & Xuất mảng int a[size]; void main() { int n, i; //Nhap so phan tu cin >> n //Nhap day for (i=0;i> a[i]; //Xuat day for (i=0;iII. MỘT SỐ TÁC VỤ CƠ BẢN 1. Nhập & Xuất mảng void Input (int mang[ ], int n) void Output (int mang[ ], int n) { { int i; int i; for (i = 0 ; i < n ; i++) for (i = 0 ; i < n ; i++) { cout II. MỘT SỐ TÁC VỤ CƠ BẢN 2. Chèn 1 phần tử x vào mảng tại vị trí thứ k 4 14 19 15 22 38 27 a 0 1 2 3 4 5 6 7 8 kvoid Insert (int x, int a[ ], int& n, int k) n=6 n=7{ int i; if ( k > n + 1 ) cout II. MỘT SỐ TÁC VỤ CƠ BẢN 2. Xóa 1 phần tử x trong mảng tại vị trí thứ k 4 22 27 15 38 14 A 0 1 2 3 4 5 6 7 8 k n=5 n=6void Delete (int a[ ], int& n , int k){ int i; if ( k > n ) cout II. TÌM KIẾM1. Tuần tự Ý Tưởng : 1 2 n 3 5 10 13 6 9 a[0] a[n-1] i=0 i=1 i=2 i=3 i=4 i=5 i 3 -1 Tìm thấy tại vị trí 4 13 19 Tìm không thấyII. TÌM KIẾM1. Tuần tự Ý Tưởng : Duyệt từ đầu đến phần tử cần tìm Nếu tìm thấy thì dừng, ngược lại thì duyệt tới cuối mảng thì cho kết quả tìm không thấyII. TÌM KIẾM1. Tuần tự Giải thuật : Bước 1 : Cho i = 0 Bước 2 : Nếu a[i] == x thì dừng chương trình, xuất kết quả tìm th ấy Bước 3 : Ngược lại tăng i lên một đơn vị Bước 4 : Lặp lại bước 2 và 3 đến khi i >= n thì qua bước 5 Bước 5 : Kết luận không tìm thấyII. TÌM KIẾM1. Tuần tự Giải thuật : Cài đặt chương trình int Sequence_Search (int a[ ], int n, int x)Input :Hàm Sequence_Search {Cho i = 0 a : mảng int i = 0; do x : giá trị phần tử cần tìm x : giá trị phần tử cần tìmThực hiện { Nếu a[i] == x thì if (a[i] == x) dừng ct, trả về kết quả tìm thấy return i;Output : else ngược lại tăng i thêm 1 i++; i : vị trí của x trong mảngLặp lại thực hiện đến khi i >= n } while (i < n); -1 : tìm không thấy return -1;Trả về kết quả tìm không thấy }II. TÌM KIẾM2. Nhị phân 3 5 10 13 16 19 23 25 30 33 36 49 Left Right a[m] a[m] a[m] m Tìm thấy tại36 ...
Tìm kiếm theo từ khóa liên quan:
lập trình mạng kỹ thuật lập trình tài liệu lập trình tự học lập trình chuyên ngành công nghệ thông tinGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
Đề tài Xây dựng hệ thống quản lý nhân sự đại học Dân Lập
46 trang 242 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 208 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 195 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 167 0 0 -
Đề cương chi tiết học phần: Mạng máy tính và lập trình mạng
4 trang 159 0 0 -
Bài giảng Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
36 trang 155 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Báo cáo bài tập lớn môn Mạng máy tính và Lập trình mạng: Tìm hiểu về Soap
32 trang 135 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 133 0 0