CÁC VẤN ĐỀ CẦN QUAN TÂM CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

31 536 0
CÁC VẤN ĐỀ CẦN QUAN TÂM  CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1.Hãy nêu vai trò tổ chưc dữ lieu trong máy tính. Bộ nhớ máy vi tính chưa bộ mã nào, Các hệ cơ số đếm trong máy tính, Cách chuyển đổi cơ số trong máy tính sang cơ số thập phân.2, Hãy nêu mối lien hệ cấu truc dữ liệu và giải thuật trong Công nghệ lập trình. Vai trò chương trình của máy tính đóng vai trò gì trong xử lý thong tin.3. Hãy đưa các khái niêm các kiểu dữ liệu trong cấu truc dữ liệu máy tính.4. Anh (Chị) hiểu thế nào kiểu dữ liệu tĩnh và dộng (Cho Ví dụ) chi tiết từng loại bằng C++7.Nêu các ví dụ nguyên tắc cài đặt hàm tìm kiếm bằng mã giả đê thực hiện tìm kiếm theo thuật toán tuyến tính.8. Nêu các ví dụ nguyên tắc cài đặt hàm tìm kiếm bằng mã giả đê thực hiện tìm kiếm theo thuật toán nhị phân.(Binary Search)9. Hãy nêu 5 giải thuật sắp xếp căn bản, nêu ý tưởng của từng loại. Cho ví dụ ít nhất hai giải thuật (Viết bằng NN C++)10. Hãy nêu độ phức tạp của 5 loại thuật toán sắp xếp căn bản, theo Anh (Chị) loại nào có tốc đọ tìm kiếm nhanh nhất, loại nào chậm nhất.

CÁC VẤN ĐỀ CẦN QUAN TÂM CÂU TRÚC DỮ LIỆU GIẢI THUẬT 1.Hãy nêu vai trò tổ chưc lieu máy tính Bộ nhớ máy vi tính chưa mã nào, Các hệ số đếm máy tính, Cách chuyển đổi số máy tính sang số thập phân  Vai trò tổ chức liệu máy tính: Nhằm mục đích khai thác hiệu liệu máy tính  Bộ nhớ máy tính chứa mã:  Các hệ số đếm máy tính: Hệ nhị phân (cơ số 2), hệ thập phân (cơ số 10), hệ thập lục phân (cơ số 16)  Cách chuyển đổi số máy tính sang số thập phân: Bảng quy tắc: binary (nhị phân), hex (thập lục phân), decimal (thập phân) binary hex decimal 0000 | | 0001 | | 0010 | | 0011 | | 0100 | | 0101 | | 0110 | | 0111 | | 1000 | | 1001 | | 1010 | A | 10 1011 | B | 11 1100 | C | 12 1101 | D | 13 1110 | E | 14 1111 | F | 15 - Chuyển từ nhị phân sang thập phân: Lấy số 1101 làm zí dụ: 1*(2^3) + 1*(2^2) + 0*(2^1) + 1*(2^0) = 13 Số thứ * (2^3) Số thứ hai * (2^2) Số thứ ba * (2^1) Số thứ tư 1*(2^0) 1101 (binary) = 13 (decimal) => Số thứ nhân với số với số mũ cao cộng cho số thứ hai nhân với số với số mũ giảm dần thế… - Chuyển từ thập lục phân sang thập phân: Để chuyển đổi từ hex sang decimal ta chuyển hex sang binary, sau lại từ binary ta chuyển decimal Lấy số FEED làm ví dụ: Từ hex sang binary: FEED (hex) = 1111 1110 1110 1101 (binary) Từ binary sang decimal: 1*(2^15) + 1*(2^14) + 1*(2^13) + 1*(2^12) + 1*(2^11) + 1*(2^10) +1*(2^9) + 0*(2^8) + 1*(2^7) +1*(2^6) +1*(2^5) + 0*(2^4) +1*(2^3) +1*(2^2) + 0*(2^1) + 1*(2^0) = 65261 Như vậy: FEED (hex) = 1111111011101101 (binary) = 65261 (decimal) Cách 2: Tính FEED= (15x16^3)+(14x16^2)+(14x16^1)+(13x16^0)=(15x4096)+ (14x256)+(14x16)+(13x1)=61440+3584+224+13=65261 2, Hãy nêu mối lien hệ cấu truc liệu giải thuật Công nghệ lập trình Vai trò chương trình máy tính đóng vai trò xử lý thong tin  Mối liên hệ: Các cấu trúc liệu giải thuật xem yếu tố quan trọng lập trình, câu nói tiếng Niklaus Wirth: Chương trình = Cấu trúc liệu + Giải thuật (Programs = Data Structures + Algorithms)  Vai trò chương trình máy tính xử lý thông tin: Chương trình máy tính giúp ta xử lý thông tin cách nhanh hơn, xác hơn, tiết kiệm nhân lực Xử lý toán lớn cách dễ dàng Hãy đưa khái niêm kiểu liệu cấu truc liệu máy tính - Tên loại liệu (Cho Ví dụ) - Miền giá trị liệu (Cho Ví dụ) - Kích cỡ lưu trữ - Tập lệnh thao tác liệu (Cho Ví dụ) Nhiều ngôn ngữ định nghĩa sẵn kiểu liệu thông dụng như: • integer: thông dụng, dùng để biểu diễn số nguyên • char: biểu diễn ký tự đơn lẻ • string: biểu diễn chuỗi kí tự, hay gọi chuỗi, để tạo thành câu hay cụm từ Ví dụ: C++, kiểu integer thông dụng có tên int chiếm byte; kiểu string dãy char, với kí tự NULL '/0' vị trí chuỗi kết thúc – dãy dài chuỗi lưu trữ 4 Anh (Chị) hiểu kiểu liệu tĩnh dộng (Cho Ví dụ) chi tiết loại C++ Tĩnh • • • • Được định nghĩa thời điểm biên dịch Được cấp phát thời điểm liên kết Có thể có giá trị ban đầu tùy theo ngôn ngữ lập trình Tồn đến kết thúc chương trình Động • • • • Được gắn kết với trỏ (tại thời điểm biên dịch chưa có) Phát sinh lúc thực thi Không xác định giá trị ban đầu Được giải phóng khỏi nhớ cần Hãy liệt kê loại liệu dung C++ (Cho Ví dụ) -Các kiểu liệu C++: Kiểu sở :số nguyên ,số thực, kiểu logic Kiểu mảng , chuôi Kiểu có cấu trúc 1.Kiểu sở: Kiểu số nguyên Stt Tên kiểu Ghi Kích thước Ký tự byte Số nguyên byte unsigned char Số nguyên dương byte short Số nguyên bytes unsigned short Số nguyên dương bytes int Số nguyên bytes unsigned int Số nguyên dương bytes long Số nguyên bytes char unsigned long Số nguyên dương bytes Kiểu số thực Stt Tên kiểu Ghi Kích thước float bytes double bytes long double bytes Kiểu luận lý Stt Tên kiểu Boolean Ghi Gồm giá trị: true false 2.Kiểu mảng, chuỗi Màng chiều  Kích thước Khai báo []; VD: int a[100];  Khai báo kiểu trỏ *; VD: int *a;  Gán giá trị ban đầu VD1: int a[100] = {0}; VD2: int a[5] = {3, 6, 2, 10, 17}; hoặc: int a[] = {3, 6, 2, 10, 17}; Phát sinh ngẫu nhiên - Khởi tạo phát sinh ngẫu nhiên srand((unsigned int)time(NULL)); - Phát sinh giá trị ngẫu nhiên int x = rand()%k; k: Số nguyên dương x ∈ [0 k-1] VD: Phát sinh số nguyên có giá trị từ đến 50 srand((unsigned int)time(NULL)); int x = rand()%51;  Chuỗi  Khai báo char [] ; VD: char hoten[50];  Khai báo theo trỏ char *; VD: char *hoten;  Lưu ý sử dụng phải cấp phát biến trỏ lệnh new, hủy lệnh delete VD: int *a; int n = 10; a = new int[n]; … delete a; 3.Kiểu liệucấu trúc Khai báo struct tên_struct { khai báo thuộc tính; }; typedef struct tên_struct tên_kiểu; VD: struct ttDate { char thu[9]; unsigned char ngay; unsigned char thang; int nam; }; typedef struct ttDate DATE;  Biến cấu trúc kiểu tĩnh .thành phần cấu trúc VD: DATE d; d.nam = 2012;  Biến cấu trúc kiểu trỏ thành phần cấu trúc VD: DATE *d; dnam = 2012; Nêu giải thuật tìm kiếm(Search) công nghệ lập trình Cho hai ví dụ giải thuật (Mô tả C++)  Các giải thuật tìm kiếm   Có giải thuật thường áp dụng: Tìm tuyến tính tìm nhị phân Đặc tả:  Tập liệu lưu trữ dãy số a , a , ,a N  Khai báo: int a[N];  Khóa cần tìm: int x; Ví dụ: • Tìm kiếm tuyến tính int tuyentinh(long a[], long n, int x) { int i=0; while((ipNext delete pDel pPrev Xóa nút cuối danh sách  Ảnh hưởng pTail pDel Cần xóa List 30 pHead 78 41 25 pTail NODE *pDel = list.pTail NODE *pPrev = “Tìm node trước pTail pPrev->pNext = NULL list.pTail = pPrev delete pDel  Xóa nút danh sách pPrev pDel Cần xóa 41 List 30 pHead pTail NODE *pPrev = “Tìm node trước pDel” pPrev->pNext = pDel->pNext delete pDel 25 41 96 78 LƯU ĐỒ THUẬT TOÁN Viết lưu đồ chương trình cho phép nhập vào số nguyên dương N In cho biết số đảo ngược số N ( Ví dụ: N=12345 có số đảo 54321 ) BẮT ĐẦU n, sdn=0 Sai n>0 Đúng sdn=n*10+n%10 n=n/10 KẾT THÚC Xuất sdn Mảng chiều Bắt đầu a[], n, i=0 i

Ngày đăng: 13/04/2017, 22:14

Từ khóa liên quan

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

Tài liệu liên quan