Professional Documents
Culture Documents
Tổng hợp Cấu trúc dữ liệu và giải thuật
Tổng hợp Cấu trúc dữ liệu và giải thuật
Đáp án đúng là: Là kiểu dữ liệu có sẵn trên hầu hết các máy tính và được hỗ trợ trong hầu hết các ngôn ngữ
lập trình.
Câu Hỏi 2:Hãy cho biết kiểu dữ liệu trừu tượng là gì?
Đáp án đúng là: Là kiểu dữ liệu mới do người dùng tự định nghĩa.
Câu Hỏi 3:Đâu là một trong những tiêu chí khi chọn ngôn ngữ diễn đạt giải thuật ?
Đáp án đúng là: Gần với ngôn ngữ lập trình hiện có.
Câu Hỏi 5:Đâu là kiểu dữ liệu cơ bản trong các kiểu dữ liệu dưới đây?
Câu Hỏi 8:Hãy cho biết kết quả của phép MOD hai số nguyên có kiểu gì?
Câu Hỏi 9:Chọn định nghĩa đúng nhất cho từ Giải thuật?
Đáp án đúng là: Là một tập hợp hữu hạn của các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc
hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ
dẫn đến kết quả sau cùng như đã dự đoán
Câu Hỏi 2:Kiểu dữ liệu con trỏ được dùng để làm gì?
Đáp án đúng là: Được dùng để lưu các con trỏ đến bất kỳ một kiểu dữ liệu nào khác.
Câu Hỏi 4:Hãy cho biết ưu điểm của các kiểu dữ liệu trừu tượng.
Đáp án đúng là: Giúp cho người lập trình không phải quá quan tâm đến các cách thức biểu diễn cụ thể các
dữ
Câu Hỏi 5:Hãy cho biết giá trị của “con trỏ” là gì?
Đáp án đúng là: Là địa chỉ đến một vùng bộ nhớ nhất định.
Câu Hỏi 6:Kiểu truy cập các phần tử trong một mảng là kiểu truy cập nào trong các kiểu dưới đây?
Câu Hỏi 8:Kiểu dữ liệu nào thuộc loại kiểu dữ liệu cơ bản?
Câu Hỏi 9:Yêu cầu khi chọn kiểu dữ liệu cho chương trình là?
Đáp án đúng là: Kiểu dữ liệu cần sát với kiểu giá trị của các thông tin đó trong thực tế.
Câu Hỏi 10:Hãy cho biết ý nghĩa của kiểu dữ liệu logic (BOOLEAN)
Đáp án đúng là: Dùng để biểu diễn các giá trị logic bao gồm 2 giá trị đúng (true) và sai (false).
{int Key;
DNode * NextNode;
DNode * PreNode;
} DOneNode;
{DPointerType DLLFirst;
DPointerType DLLLast;
} DLLPType;
CurrNode = CurrNode->NextNode ;
return;
Đáp án đúng là: Duyệt qua các nút trong danh sách và hiển thị nội dung của mỗi nút.
Câu Hỏi 8:Cho danh sách L = (1, 8, 9, 2, 4, 0, 6, 7, 5). Thủ tục DSC_L(Pos1; Pos2: position ; var List: ListType)
để đưa ra một danh sách con của List bắt đầu từ vị trí Pos1 đến vị trí Pos2 và trả giá trị cho List. Thủ tục
Delete_L(Pos: position ; var List: ListType) để xóa một phần tử tại vị trí Pos khỏi danh sách List. Thủ tục
Insert_L(Pos: position ; X: Item; var List: ListType) để thêm một phần tử X vào vị trí Pos trong danh sách
List. Khi đó nếu ta thực hiện liên tiếp DSC_L(2,7,L), Delete_L (2,L), Insert_L(2,3,L) thì kết quả sẽ được danh
Câu Hỏi 10:Định nghĩa nào là đúng với danh sách liên kết?
Đáp án đúng là: Danh sách liên kết là tập hợp các phần tử mà giữa chúng có một sự nối kết với nhau thông
qua vùng liên kết của chúng.
Câu Hỏi 1:Định nghĩa cấu trúc dữ liệu của danh sách liên kết đôi được mô tả như sau:
2
typedef struct NodeType
ElementType Data;
}Node ;
Đáp án đúng là: Vùng liên kết quản lý địa chỉ phần tử kế tiếp.
Câu Hỏi 3:Lựa chọn câu đúng nhất về danh sách liên kết đôi (Doubly Linked List)
Đáp án đúng là: Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết, 01 với phần tử
Câu Hỏi 4:Lựa chọn định nghĩa đúng nhất về danh sách?
Đáp án đúng là: Danh sách là tập hợp các phần tử có kiểu dữ liệu xác định và giữa chúng có một mối liên hệ
nào đó.
Câu Hỏi 5:Trong định nghĩa danh sách liên kết đôi, mỗi nút gồm bao nhiêu thành phần?
Câu Hỏi 6:Trong việc ứng dụng danh sách liên kết để tính toán giá trị của một đa thức 1 ẩn bậc n, để lưu trữ
đa thức trong danh sách liên kết thì mỗi nút của danh sách thường có mấy trường:
Câu Hỏi 7:Khi cài đặt danh sách bằng mảng, với độ dài là n thì thao tác chèn một phần tử vào danh sách có
độ phức tạp:
Câu Hỏi 8:Cho danh sách L = (1, 5, 3, 2, 4, 0, 6). Thủ tục Delete_L(Pos: position ; var List: ListType) để xóa
một phần tử tại vị trí Pos khỏi danh sách List. Khi đó nếu ta thực hiện liên tiếp Delete_L(2,L), Delete_L(4,L)
thì kết quả sẽ được danh sách L như sau?
Câu Hỏi 9:Cho danh sách L = (0, 3, 7, 2, 4, 9). Đâu là danh sách con của L?
Câu Hỏi 10:Biểu diễn danh sách bằng mảng được mô tả như sau:
#de ne Max_Size N
struct ListType
3
{E_Type Element[Max_Size];
int Size;
} List;
Câu Hỏi 1: Cho biểu thức số học dạng thông thường: a * (b + c) - d/e
Đâu là biểu diễn biểu thức này dưới dạng biểu thức Balan?
Câu Hỏi 2:Cho biểu thức số học dạng Balan như sau: abc +* de /- với các giá trị a=1; b=2; c=3; d=8; e=4; thì
giá trị của biểu thức là:
Vì: Việc tính giá trị của biểu thức ở dạng biểu thức Ba Lan được thực hiện: biểu thức được đọc từ trái sang
Câu Hỏi 3:Việc cài đặt ngăn xếp bằng mảng được thực hiện qua khai báo dưới đây:
#de ne max N
struct Stack
int Top_id;
ElementType Element[max];
};
Stack S;
Đáp án đúng là: Kiểu dữ liệu của các phần tử trong Stack.
Câu Hỏi 5:Cho biểu thức số học dạng Balan như sau: 1 2 3 4 *- + 5 6 4 8 – – + *. Việc tính toán giá trị biểu
thức này khi dùng Stack được cài đặt bằng mảng thì phần tử được đẩy vào Stack lần thứ 10 có giá trị là bao
nhiêu?
và giải thuật, bài 3, mục 3.4, Ứng dụng của ngăn xếp
Câu Hỏi 6:Cho biểu thức số học dạng Balan như sau: 1 2 3 4 *- + 5 6 4 8 – – + *. Việc tính toán giá trị biểu
thức này khi dùng Stack được cài đặt bằng mảng thì phần tử được đẩy vào Stack lần thứ 8 có giá trị là bao
nhiêu?
4
Câu Hỏi 7:Trong việc cài đặt ngăn xếp bằng mảng A[…], ta sử dụng một biến top_id để lưu giữ đỉnh của
ngăn xếp, nếu hiện tại ngăn xếp chưa có phần tử thì giá trị của top_id là bao nhiêu?
Câu Hỏi 8:Khi dùng Stack được cài đặt bằng mảng để đổi số tự nhiên N = 70 (hệ cơ số 10) sang hệ nhị phân
thì số phần tử tối thiểu của mảng phải là bao nhiêu?
Câu Hỏi 9:Trong việc cài đặt ngăn xếp bằng mảng A[…], nếu hiện tại ngăn xếp có n phần tử thì phần tử mới
nhất vừa được đưa vào ngăn xếp vị trí nào trong mảng?
Câu Hỏi 10:Cho biểu thức số học dạng thông thường: (a+b)*(c-(d/e)).Đâu là biểu diễn biểu thức này dưới
dạng biểu thức Balan?
Câu Hỏi 1:Cho biểu thức số học dạng Balan như sau: 1 2 3 4 *- + 5 6 4 8 – – + *. Việc tính toán giá trị biểu
thức này khi dùng Stack được cài đặt bằng mảng thì số phần tử tối thiểu của mảng phải là bao nhiêu?
Câu Hỏi 3:Việc cài đặt ngăn xếp bằng mảng được thực hiện qua khai báo dưới đây:
#de ne max N
struct Stack
int Top_id;
ElementType Element[max];
};
Stack S;
Câu Hỏi 9:Cho biểu thức số học dạng thông thường: a * (b + c) - d/e.Đâu là biểu diễn biểu thức này dưới
dạng biểu thức Balan?
Câu Hỏi 5:Việc kiểm tra hàng đợi có rỗng không được thực hiện bằng đoạn mã dưới đây:
int IS_EMPTY(QUEUE_ARRAY q)
5
if (………)
return 1;
else
return 0;
Hãy lựa chọn câu trả lời đúng nhất nội dung điền vào chỗ trống (.........) của đoạn mã trên:
Câu Hỏi 6:Cấu trúc dữ liệu nào tương ứng với nguyên lý FIFO
Câu Hỏi 7:Khi cài đặt hàng đợi bằng mảng, nếu ta đặt tên các biến như sau: biến T thể hiện vị trí đuôi, biến
H thể hiện vị trí đầu. Thao tác thêm 1 phần tử vào hàng đợi sẽ:.
Câu Hỏi 8:Khi cài đặt hàng đợi bằng mảng, nếu ta đặt tên các biến như sau: biến T thể hiện vị trí đuôi, biến
H thể hiện vị trí đầu. Thao tác lấy ra 1 phần tử của hàng đợi trong trường hợp: “giá trị của H đúng bằng kích
Câu Hỏi 9:Khi lấy ra một phần tử của hàng đợi thì phần tử đó ở vị trí:
Câu Hỏi 10:Việc cài đặt hàng đợi bằng mảng được thực hiện qua khai báo dưới đây:
#de ne max N
struct QUEUE_ARRAY
ELEMENT ele[max];
int capacity, H, T, S ;
} q;
Đáp án đúng là: Kiểu dữ liệu của các phần tử trong Hàng đợi.
Câu Hỏi 1:Việc lấy một phần tử từ hàng đợi được thực hiện bằng đoạn mã dưới đây:
ELEMENT DEQUEUE(QUEUE_ARRAY q)
ELEMENT e;
6
if (IS_EMPTY(q)!= 0)
else
e = q.ele[q.H];
q.H =q.H + 1;
q.S = ........;
if (q.H == q.capacity)
q.H = 0;
return e;
Hãy lựa chọn câu trả lời đúng nhất nội dung điền vào chỗ trống (.........) của đoạn mã trên:
Câu Hỏi 2:Việc cài đặt hàng đợi bằng mảng được thực hiện qua khai báo dưới đây:
#de ne max N
struct QUEUE_ARRAY
ELEMENT ele[max];
int capacity, H, T, S;
} q;
Câu Hỏi 3:Khi cài đặt hàng đợi bằng mảng, nếu ta đặt tên các biến như sau: biến T thể hiện vị trí đuôi, biến
H thể hiện vị trí đầu. Thao tác thêm 1 phần tử vào hàng đợi trong trường hợp: “giá trị của T đúng bằng kích
thước của mảng trong khi số lượng phần tử của hàng đợi vẫn nhỏ hơn kích thước của mảng” sẽ:
Câu Hỏi 4:Để cài đặt thàng đợi bằng danh sách liên kết, trước tiên ta phải định nghĩa kiểu phần tử cho danh
sách.Mỗi phần tử của danh sách liên kết phải có bao nhiêu trường:
7
Câu Hỏi 6:Cấu trúc dữ liệu nào khi cài đặt bằng mảng ta phải cần 2 biến vị trí để quản lý danh sách các
phần tử
Câu Hỏi 7:Việc bổ sung thêm phần tử vào hàng đợi được thực hiện bằng đoạn mã dưới đây:
if (IS_FULL(q)!= 0)
else{
if (q.T == q.capacity–1)
q.T=0;
else
…………..;
q.ele[q.T]=e;
q.S=q.S+1;
Hãy lựa chọn câu trả lời đúng nhất nội dung điền vào chỗ trống (.........) của đoạn mã trên:
Câu Hỏi 8:Việc kiểm tra hàng đợi có rỗng không được thực hiện bằng đoạn mã dưới đây:
int IS_EMPTY(QUEUE_ARRAY q)
if (………)
return 1;
else
return 0;
Hãy lựa chọn câu trả lời đúng nhất nội dung điền vào chỗ trống (.........) của đoạn mã trên:
Câu Hỏi 9:Việc cài đặt hàng đợi bằng mảng được thực hiện qua khai báo dưới đây:
#de ne max N
ELEMENT ele[max];
int capacity, H, T, S;
} q;
Câu trả lời đúng là: Số phần tử hiện thời của hàng đợi
Câu Hỏi 10:Khi cài đặt hàng đợi bằng mảng, nếu ta đặt tên các biến như sau: biến T thể hiện vị trí đuôi, biến
H thể hiện vị trí đầu. Thao tác lấy ra 1 phần tử của hàng đợi trong trường hợp: “giá trị của H đúng bằng kích
Câu Hỏi 5:Hãy cho biết kết quả duyệt trung thứ tự (duyệt nút gốc giữa) của cây nhị phân sau.
Câu Hỏi 1:Cho biết kết quả duyệt trung thứ tự (duyệt nút gốc đỉnh 3 là :
Đáp án đúng là: Luôn tồn tại một đường duy nhất từ gốc tới một đỉnh bất kỳ trong cây.
Câu Hỏi 2:Quan hệ phân cấp giữa các nút trong cây được gọi là quan hệ gì?
Câu Hỏi 3:Đâu là phương pháp duyệt hậu thứ tự một cây nhị phân?
Đáp án đúng là: Duyệt cây con bên phải sau đó tới cây con bên trái rồi tới nút gốc.
Câu Hỏi 4:Hãy cho biết độ cao của một cây được xác định như thế nào?
Câu Hỏi 5:Các phần tử của cây thì được gọi là gì?
Câu Hỏi 6:Cho một biểu diễn cây như sau:Bậc của đỉnh e là
Câu Hỏi 7:Cho một biểu diễn cây như sau:Đâu là tập các lá của cây:Câu trả lời của bạn chính xác
Câu Hỏi 8:Đãy cho biết kết quả duyệt trung thứ tự (duyệt nút gố nào?
Câu Hỏi 9:Các đỉnh của cây có bậc bằng 0 thì được gọi là gì?
Thuật toán:
B1: k = 0
B2.1: k++
B3: IF k < N
B4: ELSE
int i;
i=0;
i++;
else return(–1);
Đáp án đúng là: Hàm sẽ trả về -1 nếu không tìm thấy phần tử có giá trị là X.
10
{
return (-1);
if (X == M[Mid])
return (Mid);
if (X < M[Mid])
else
Đáp án đúng là: Hàm tìm kiếm đệ quy phần tử có giá trị là X trên mảng các phần tử từ chỉ số từ First đến chỉ
số Last.
int i;
i=0;
i++;
else return(–1);
Khi đó, nếu tìm giá trị X = 34 trong mảng sau: 11, 23, 33, 34, 35, 62,71, 80, 95, 100
Chọn câu đúng nhất cho số phép so sánh trong vòng lặp while:
Câu Hỏi 7:Cho thuật toán tìm kiếm sau, với điều kiện các giá trị của mảng đã được sắp theo thứ tự tăng
dần:
{int i;
if(R[i]== X) return(i);
return(–1);
Khi đó, nếu tìm giá trị X = 85 trong mảng được sắp xếp theo thứ tự tăng dần như sau:
Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X
Câu Hỏi 8:Cho thuật toán tìm kiếm nhị phân sau:
Bước 2: Found = –1;//Found là biến lưu vị trí tìm thấy X trong mảng
Đâu là điều kiện của mảng R[] để thực hiện thuật toán?
Câu Hỏi 9:Cho thuật toán tìm kiếm sau, với điều kiện các giá trị của mảng đã được sắp theo thứ tự tăng
dần:
int i;
{
12
if(R[i]== X) return(i);
return(–1);
Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X:
Câu Hỏi 10:Cho thuật toán tìm kiếm trên cây nhị phân tìm kiếm như sau:
Khoá cần tìm kiếm X = 40 thì số lần thực hiện Bước 2 là?
{ int k = 0;
M[N] = X;
k++;
if (k < N)
return (1);
13
Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X:
Câu Hỏi 2:Khi xóa một nút của cây nhị phân tìm kiếm, trường hợp nút cần xóa là nút có đủ hai nút gốc cây
con. Đâu là định nghĩa đúng nhất cho khái niệm "nút tiền nhiệm"?
Đáp án đúng là: Nút cực phải của cây con trái
Câu Hỏi 3:Đâu là cây nhị phân tìm kiếm trong các cây nhị phân sau?
return (-1);
if (X == M[Mid])
return (Mid);
if (X < M[Mid])
else
Đáp án đúng là: Hàm tìm kiếm đệ quy phần tử có giá trị là X trên mảng các phần tử từ chỉ số từ First đến chỉ
số Last.
Câu Hỏi 5:Cho thuật toán tìm kiếm sau, với điều kiện các giá trị của mảng đã được sắp theo thứ tự tăng
dần:
14
{
int i;
if(R[i]== X) return(i);
return(–1);
Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X:
Câu Hỏi 6:Cho thuật toán tìm kiếm nhị phân sau:
Bước 2: Found = –1;//Found là biến lưu vị trí tìm thấy X trong mảng
Đâu là điều kiện của mảng R[] để thực hiện thuật toán?
int i;
i=0;
i++;
15
}
else return(–1);
Khi đó, nếu tìm giá trị X = 34 trong mảng sau: 11, 23, 33, 34, 35, 62,71, 80, 95, 100
Chọn câu đúng nhất cho số phép so sánh trong vòng lặp while:
Câu Hỏi 8:Bạn hãy cho biết độ phức tạp của giải thuật tìm kiếm tuần tự.
Câu Hỏi 9:Cho thuật toán tìm kiếm trên cây nhị phân tìm kiếm như sau:
Khoá cần tìm kiếm X = 40 thì số lần thực hiện Bước 2 là?
Câu Hỏi 10:Đâu là một điều kiện của việc xóa một nút của cây nhị phân tìm kiếm?
Đáp án đúng là: Cây nhận được sau khi xóa là cây nhị phân tìm kiếm
Câu Hỏi 1:Cho dãy số gồm 8 phần tử: 5, 3, 7, 4, 1, 2, 9, 12.Ta có thể chia dãy trên thành ít nhất bao nhiêu dãy
con không giảm?
Câu Hỏi 2:Bạn hãy cho biết độ phức tạp của việc sắp xếp tăng dần một dãy số bằng thuật toán chèn trực
tiếp trong trường hợp dãy đã được sắp tăng với n là số phần tử của dãy?
Câu Hỏi 3:Bạn hãy cho biết độ phức tạp của việc sắp xếp tăng dần một dãy số bằng thuật toán Heap sort
16
trong trường hợp tồi nhất với n là số phần tử của dãy.
HeapSort chỉ thực hiện HeapiFy một lần và SwapDown n – 1 lần nên độ phức tạp của HeapSort trong
Câu Hỏi 4:Theo thuật toán Quick sort, về nguyên tắc thì điều kiện nào sau đây dùng để chọn khóa chốt?
Câu Hỏi 5:Theo thuật toán Merge sort, trong lần phân hoạch đầu tiên thì số phân hoạch theo phương pháp
trộn trực tiếp so với số phân hoạch theo phương pháp trộn tự nhiên là?
Đáp án đúng là: Không biết trước, tùy vào tình trạng của dãy ban
Câu Hỏi 6:Cho các bước của thuật toán sắp dãy sắp xếp một dãy a , a ,…, a theo thứ tự tăng dần như sau :
Bước 1: i = 1;
Bước 2:đặt
x = A[i];
j = i – 1;
A[j + 1] = A[j];
j––;
i++;
Bước 5: nếu i < = n – 1 lặp lại bước 2 ngược lại thì kết thúc
Câu Hỏi 7:Tên của thuật toán sắp xếp mà tư tưởng của nó là phân hoạch dãy ban đầu thành các dãy con có
vị trí tương đối với một phần tử trong dãy?
Câu Hỏi 8:Cho các bước của thuật toán sắp dãy sắp xếp một dãy a , a ,…, a theo thứ tự tăng dần theo thuật
n
17
toán Insertion sort như sau :
Bước 1: i = 1;
Bước 2:đặt
x = A[i];
j = i – 1;
A[j + 1] = A[j];
j––;
i++;
Bước 5: nếu i < = n – 1 lặp lại bước 2 ngược lại thì kết thúc
Trường hợp tốt nhất, khi dãy phần tử cần sắp xếp có thứ tự tăng:
so sánh
Câu Hỏi 9:Thủ tục mô tả thuật toán sắp xếp chèn trực tiếp (Insertion sort):
#de ne Max_Size …
KeyType Array[Max_Size];
int n;
};
int i,j;
KeyType x;
i = 1;
{ x = a.Array[i] ; j = i – 1;
18
}
………… ;
i++;
return a;
Chọn câu lệnh thích hợp để đưa vào (............) với mục tiêu đưa giá trị cần chèn vào vị trí.
Câu Hỏi 10:Thủ tục mô tả thuật toán sắp xếp chọn (Selection Sort):
{ int K = 0, PosMin;
int Temp;
T Min = M[K];
PosMin = K;
Min = M[Pos];
PosMin = Pos
................................... [1]
................................... [2]
................................... [3]
K++;
return;
Chọn câu lệnh thích hợp để đưa vào [1], [2], [3] với mục tiêu hoán vị M[K] và M[PosMin]
19
Temp = M[K] ;
M[K] = M[PosMin];
M[PosMin] = Temp ;
Temp = M[K] ;
M[K] = M[PosMin];
M[PosMin] = Temp;
Câu Hỏi 1:Bạn hãy cho biết độ phức tạp của việc sắp xếp tăng dần một dãy số bằng thuật toán Quick sort
Câu Hỏi 2:Cho các bước của thuật toán sắp dãy sắp xếp một dãy a , a ,…, a theo thứ tự tăng dần theo thuật
Bước 1: i = 0;
Bước 2: tìm phần tử A[min] nhỏ nhất trong dãy từ A[i] tới A[n–1]
Bước 4 : nếu i <= n – 2 thì i = i + 1, lặp lại bước 2, ngược lại thì dừng
Trường hợp tốt nhất, khi dãy phần tử cần sắp xếp có thứ tự tăng dần:
Câu Hỏi 3:Thủ tục mô tả thuật toán sắp xếp chèn trực tiếp (Insertion sort):
#de ne Max_Size …
KeyType Array[Max_Size];
int n;
};
20
{
int i,j;
KeyType x;
i = 1;
{ x = a.Array[i] ; j = i – 1;
………… ;
i++;
return a;
Câu Hỏi 4:Bạn hãy cho biết độ phức tạp của việc sắp xếp tăng dần một dãy số bằng thuật toán chèn trực
tiếp trong trường hợp dãy đã được sắp tăng với n là số phần tử của dãy?
Câu Hỏi 5:Cho các bước của thuật toán sắp dãy sắp xếp một dãy a , a ,…, a theo thứ tự tăng dần như sau :
Bước 1: i = 1;
Bước 2:đặt
x = A[i];
j = i – 1;
A[j + 1] = A[j];
j––;
i++;
Bước 5: nếu i < = n – 1 lặp lại bước 2 ngược lại thì kết thúc
21
Bạn cho biết đây là thuật toán sắp xếp nào?
Câu Hỏi 6:Theo thuật toán Quick sort, về nguyên tắc thì điều kiện nào sau đây dùng để chọn khóa chốt?
Câu Hỏi 7:
Câu Hỏi 8:Thủ tục mô tả thuật toán sắp xếp chọn (Selection Sort):
{ int K = 0, PosMin;
int Temp;
T Min = M[K];
PosMin = K;
Min = M[Pos];
PosMin = Pos
}
22
................................... [1]
................................... [2]
................................... [3]
K++;
return;
Chọn câu lệnh thích hợp để đưa vào [1], [2], [3] với mục tiêu hoán vị M[K] và M[PosMin]
Temp = M[K] ;
M[K] = M[PosMin];
M[PosMin] = Temp ;
Câu Hỏi 9:Bạn hãy cho biết độ phức tạp của việc sắp xếp tăng dần một dãy số bằng thuật toán Heap sort
Câu Hỏi 10:Tên của thuật toán sắp xếp mà tư tưởng của nó là phân hoạch dãy ban đầu thành các dãy con
có vị trí tương đối với một phần tử trong dãy?
23