Cấu trúc dữ liệu và giải thuật 1 ĐH KHTN TP HCM/ Khoa CNTT HƯỚNG DẪN THỰC HÀNH CÁC THUẬT TOÁN TÌM KIẾM I Mục tiêu Sinh viên cài đặt các thuật toán tìm kiếm và ứng dụng nó để giải quyết các bài toán đặ[.]
ĐH KHTN TP.HCM/ Khoa CNTT HƯỚNG DẪN THỰC HÀNH CÁC THUẬT TỐN TÌM KIẾM I Mục tiêu Sinh viên cài đặt thuật tốn tìm kiếm ứng dụng để giải toán đặt II Qui định nộp - Sinh viên nộp tập tin nén, có tên .zip .rar chứa source code báo cáo chương trình - Sinh viên nộp kèm file báo cáo ghi mức độ hồn thành cơng việc mình, liệu mà test - Tất tập lập trình theo command line (tham số dịng lệnh) - Kiến trúc thư mục nộp: o MSSV ▪ Document: báo cáo mức độ hoàn thành tập, vấn đề gặp phải dẫn đến khơng hồn thành phần tập ▪ MSSV_BT1: • Source: chứa file cpp • Header: chứa file h • Test case: chứa file input để test thử (ít test có đặc trưng khác nhau) • … ▪ MSSV_BT2: … - Môi trường làm việc: Visual Studio 2015 môi trường tương đương Không sử dụng hàm bị lỗ hổng bảo mật gets, … - Hạn nộp: xem link Moodle - Bài giống hay nộp file rác điểm MÔN HỌC III Nội dung BT1 Cài đặt thuật toán tìm kiếm để xác định tất vị trí phần tử cần tìm mảng chiều số nguyên: - (1) Tìm kiếm - (2) Tìm kiếm có lính canh - (3) Tìm kiếm nhị phân Command line: MSSV_BTx.exe ThuatToan x Input.txt Output.txt Ví dụ: 1512345_BT1.exe test1.txt out1.txt Cấu trúc liệu giải thuật Nghĩa chạy thuật tốn tìm kiếm để tìm phần tử x=3 chứa mảng chiều file test1.txt xuất kết file out1.txt Định dạng input: - Dòng chứa số phần tử mảng - Dòng chứa phần tử, phần tử cách khoảng trắng - Ví dụ: 283913 Định dạng output: - Tất vị trí xuất với ví trí đếm từ Mỗi vị trí cách khoảng trắng Nếu khơng có phần tử xuất giá trị -1 - Lưu ý khơng có khoảng trắng cuối dịng - Ví dụ cho ví dụ input: 25 Lưu ý: thuật tốn tìm kiếm nhị phân, mảng phải có thứ tự tăng dần BT2 Tìm cách tăng kích thước mảng dần lên từ 1000, 10000, 1000000, … phần tử Đo thời gian thực thi thuật toán BT1 Mảng giá trị cần tìm tạo ngẫu nhiên Đối với thuật tốn tìm kiếm nhị phân, mảng phát sinh phải có thứ tự tăng dần Command line: MSSV_BTx.exe ThuatToan KichThuoc KetQua Ví dụ: 1512345_BT1.exe 1000 out1000.txt Nghĩa chạy thuật toán tìm kiếm để tìm kiếm mảng ngẫu nhiên có 1000 phần tử xuất thời gian mili giây với độ xác làm trịn đến chữ số BT3 Thực thuật tốn tìm kiếm sử dụng hàm băm lấy dư (k mod N) với cách xử lý đụng độ khác nhau: - (1) Xử lý nối kết (cho phép sử dụng thư viện danh sách liên kết) - (2) Xử lý dò tuyến tính - (3) Xử lý dị bậc - (4) Xử lý hàm băm kép Giả sử liệu đưa vào khơng có giá trị trùng Command line: MSSV_BTx.exe XuLy x Input.txt Output.txt Ví dụ: 1512345_BT1.exe test1.txt out1.txt Nghĩa chạy thuật tốn tìm kiếm sử dụng hàm băm với phương pháp xử lý đụng độ nối kết để chứa tìm phần tử x = mảng chiều Nhận liệu từ test1.txt xuất kết file out1.txt Định dạng input: - Dịng chứa kích thước khơng gian - Dịng chứa số phần tử mảng cần lưu trữ - Dòng chứa phần tử, phần tử cách khoảng trắng Cấu trúc liệu giải thuật - Ví dụ: 100 2839146 Định dạng output: - Khơng gian chứa phần tử thêm vào Mỗi ô khơng gian tương ứng với dịng Dịng khơng có liệu để trống Đối với nối kết phần tử danh sách liên kết ghi dòng - Dòng cuối vị trí phần tử cần tìm với phần tử đếm Nếu khơng có phần tử xuất giá trị -1 - Lưu ý khơng có khoảng trắng cuối dịng - Ví dụ: 846 … -1 Giải thích: dịng trước số -1 khơng gian tìm kiếm Ô đầu chứa giá trị Ô thứ hai, chứa giá trị đụng độ nên giá trị sau xử lý phương pháp nối kết Lưu ý, có phương pháp xử lý nối kết có dịng có nhiều giá trị Dịng cuối in -1 khơng tìm thấy giá trị cần tìm khơng gian chứa phương pháp tìm kiếm theo bảng băm Lưu ý: test case phải đa dạng có chứa đụng độ xảy BT4 (Nâng cao - Không bắt buộc) Viết chương trình kiểm tra đoạn văn tiếng Anh có từ viết sai lỗi tả khơng Giả sử, đoạn văn chứa từ thể ngun mẫu (khơng chia, khơng số ít/số nhiều) khơng xuống dòng Bạn cho trước từ điển, từ không xuất từ điển nghĩa bị lỗi tả Cho trước: từ điển tiếng Anh (https://gist.github.com/deekayen/4148741) Command line: MSSV_BTx.exe Input.txt Output.txt Với input.txt chứa đoạn văn cần kiểm tra Ví dụ: I luve you very mach - Output.txt liệt kê từ bị lỗi có doạn văn vị trí Mỗi từ dòng Giả sử từ văn đếm Nếu khơng lỗi xuất file rỗng Ví dụ: luve - Cấu trúc liệu giải thuật mach Cấu trúc liệu giải thuật ... tăng dần BT2 Tìm cách tăng kích thước mảng dần lên từ 1000, 10000, 1000000, … phần tử Đo thời gian thực thi thuật toán BT1 Mảng giá trị cần tìm tạo ngẫu nhiên Đối với thuật tốn tìm kiếm nhị phân,... thứ tự tăng dần Command line: MSSV_BTx.exe ThuatToan KichThuoc KetQua Ví dụ: 1512345_BT1.exe 1000 out1000.txt Nghĩa chạy thuật tốn tìm kiếm để tìm kiếm mảng ngẫu nhiên có 1000 phần tử xuất thời...Nghĩa chạy thuật tốn tìm kiếm để tìm phần tử x=3 chứa mảng chiều file test1.txt xuất kết file out1.txt Định dạng input: - Dòng chứa số phần tử mảng - Dòng chứa phần tử, phần tử cách khoảng trắng