Câu hỏi:

19/07/2024 241

Quan sát lại ý tưởng của thuật toán sắp xếp chèn

1 Cho chỉ số i chạy từ phần tử thứ hai đến cuối dày

2 Chèn phần tử A[i] vào vị trí đúng của dây đã sắp xếp A[e], A[1], ..., A[i-1]

Có thể viết riêng các lệnh của thao tác “chèn” trong dòng 2 ở trên thành một hàm độc lập được không? Nếu được thì viết lại thuật toán này theo cách mới,

Trả lời:

verified Giải bởi Vietjack

Có thể được. Chẳng hạn hàm đó là chen() có thể như sau:

Quan sát lại ý tưởng của thuật toán sắp xếp chèn  1 Cho chỉ số i chạy từ phần tử thứ hai đến cuối dày (ảnh 1)

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Ý tưởng của thuật toán sắp xếp nổi bọt được mô tả bao gồm hai vòng lặp, Ý vòng lặp bên trong sẽ duyệt từng phần tử từ bên phải sang và đổi chỗ hai phần tử cạnh nhau nếu chúng sắp xếp không đúng. Sau mỗi vòng lặp bên trong thì phần tử nhỏ nhất sẽ được đưa lên vị trí đúng ở phía đầu dãy.

Ý tưởng này được mô tả bằng đoạn mã giả sau:

1 Lặp n - 1 lần

2 Cho chỉ số j chạy từ phải sang đến vị trí thứ 2 của dãy

3 Nếu A[j] < A[j-1] thì đổi chỗ 2 phần tử A[j], A[j-1]

Em hãy viết chương trình mô tả đoạn mã giả trên.

Xem đáp án » 19/07/2024 180

Câu 2:

Viết lại chương trình mô tả thuật toán sắp xếp chọn đã mô tả trong Câu 21.6 sử dụng hàm min() của Python.

Xem đáp án » 19/07/2024 128

Câu 3:

 1 Cho chỉ số i chạy từ phần từ thứ hai đến cuối dây

2 Chèn phần tử A[i] vào vị trí đúng của dây đã sắp xếp A[0], A[1], A[i-1]

Nếu công việc chèn tại dòng 2 ở trên được thực hiện như sau:

j = i

while j>e and A[j] < A[j-1]:

đổi chỗ Aljl, Aj-1]

j = j - 1

Thuật toán được mô tả theo cách trên có đúng không?

Xem đáp án » 19/07/2024 115

Câu 4:

Với thuật toán sắp xếp chèn, khi nào thuật toán thực hiện nhiều phép so sánh nhất?

Xem đáp án » 20/07/2024 112

Câu 5:

Trong trường hợp nào thuật toán sắp xếp chọn theo cách trên sẽ không cần thực hiện lệnh đổi chỗ hai phần tử tại dòng 8 của mô tả thuật toán trong sách giáo khoa?

Xem đáp án » 17/07/2024 106

Câu 6:

Ý tưởng của thuật toán sắp xếp chọn đã được mô tả trong sách giáo khoa như sau:

1 def SelectionSort(A):

2 for i in range(n-1):

3 Chọn phần tử nhỏ nhất trong dây A[i], A[i+1],

A[n-1]

4 Đồi chỗ phần từ này với A[i]

Nếu thay dòng 3 bằng A + 1] A + 2]. ... An – 1] thì thuật toán còn đúng không?

Xem đáp án » 19/07/2024 101

Câu 7:

Viết lại thuật toán chèn theo cách đã mô tả trong câu trên khác cách mô tả trong sách giáo khoa.

Xem đáp án » 20/07/2024 97

Câu 8:

Cho trước hai dãy số A, B, trong đó dãy A đã được sắp xếp đúng. Viết chương trình mô tả hàm insert(A, B) đưa tất cả các phần tử của B vào A mà vẫn phải giữ đúng thứ tự sắp xếp đúng của A.

Ví dụ: A = [1, 4], B = [5, 2, 3] thì sau khi thực hiện hàm insert(A, B), được dãy A = [1, 2, 3, 4, 5].

Xem đáp án » 13/07/2024 96

Câu 9:

Với thuật toán sắp xếp chèn, khi nào thuật toán thực hiện ít phép so sánh nhất?

Xem đáp án » 22/07/2024 89