NEW
Font size
WorksheetsThuật toán sắp xếp cơ bản: Bubble/Selection/Insertion/Merge
Total questions: 60
Worksheet time: 30mins
Bubble Sort có độ phức tạp thời gian trung bình là:
O(n)
O(nlogn)
O(n2)
O(logn)
Bubble Sort là thuật toán dựa trên:
Chia để trị
So sánh các cặp phần tử kề nhau
Chọn phần tử nhỏ nhất
Chèn phần tử
Khi mảng đã được sắp xếp sẵn, Bubble Sort tối ưu (có flag) chạy trong:
O(n)
O(n2)
O(logn)
O(1)
Bubble Sort có phải thuật toán ổn định (stable)?
Có
Không
Bubble Sort thích hợp cho:
Mảng lớn
Mảng nhỏ và gần như đã sắp xếp
Mảng ngẫu nhiên lớn
Chuỗi ký tự dài
Số lần hoán đổi trong Bubble Sort phụ thuộc vào:
Số lần duyệt
Số cặp phần tử ngược thứ tự
Kích thước mảng
Không phụ thuộc gì
Độ phức tạp space của Bubble Sort là:
O(n)
O(logn)
O(1)
O(n2)
Khi sử dụng cờ kiểm tra (flag), mục đích là:
Tăng hoán đổi
Dừng sớm nếu mảng đã sorted
Đếm số phần tử
Tăng tốc O(nlogn)
Selection Sort hoạt động dựa trên:
Đổi chỗ phần tử liền kề
Tìm phần tử nhỏ nhất rồi đưa về đầu
Chia để trị
Chèn đúng vị trí
Số lần hoán đổi (swap) tối đa của Selection Sort:
O(n2)
n − 1
O(n)
O(logn)
Selection Sort là thuật toán:
Ổn định
Không ổn định
Độ phức tạp thời gian best case của Selection Sort:
O(n)
O(nlogn)
O(n2)
O(logn)
Selection Sort tối ưu khi:
Mảng lớn
Mảng nhỏ
Mảng gần sorted
Không có trường hợp tối ưu
Điểm mạnh của Selection Sort là:
Ít hoán đổi
Ít so sánh
Rất nhanh
Chạy O(n)
Nếu cần giảm số lượng swap tối đa thì chọn:
Bubble Sort
Insertion Sort
Selection Sort
Quick Sort
Insertion Sort có time complexity tốt nhất là:
O(n)
O(logn)
O(n2)
O(1)
Insertion Sort là thuật toán:
Ổn định
Không ổn định
Insertion Sort hiệu quả nhất khi:
Mảng lớn
Mảng gần như đã sắp xếp
Mảng đảo ngược
Chuỗi ký tự lớn
Độ phức tạp worst-case của Insertion Sort:
O(n2)
O(nlogn)
O(logn)
O(n)
Kịch bản nào sau đây khiến Insertion Sort chạy nhanh nhất?
Mảng đã có thứ tự tăng
Mảng ngẫu nhiên
Mảng đảo ngược
Mảng xen kẽ
Nếu cần thuật toán nhanh cho dữ liệu online (nhập từng phần), chọn:
Merge Sort
Insertion Sort
Selection Sort
Heap Sort
Insertion Sort sử dụng:
So sánh phần tử kề
Tìm min
Chèn vào vị trí đúng
Phân hoạch
Insertion Sort có số phép hoán đổi phụ thuộc vào:
Số phần tử sai vị trí
Độ dài mảng
Không phụ thuộc
Số vòng lặp ngoài
Merge Sort chia mảng thành:
3 phần
2 phần
4 phần
Tuỳ ý
Merge Sort là thuật toán:
In-place
Không in-place
Độ phức tạp thời gian mọi trường hợp của Merge Sort:
O(n2)
O(nlogn)
O(n)
O(logn)
Merge Sort có phải ổn định?
Có
Không
Merge Sort cần bộ nhớ phụ là:
O(1)
O(logn)
O(n)
O(n2)
Merge Sort phù hợp cho:
Mảng lớn
Mảng nhỏ
Dữ liệu stream online
Mảng ngẫu nhiên nhỏ
Merge Sort không phù hợp vì:
Tốn bộ nhớ
Quá chậm
Không ổn định
Không chia đôi mảng
Merge Sort được dùng trong:
Quicksort
Tối ưu pipelines
External sorting
Linked List sorting
Quick Sort thuộc nhóm:
Chèn
Chọn
Chia để trị
Đổi chỗ liền kề
Bộ phận quan trọng nhất của Quick Sort:
Merge
Partition
Binary Search
Rebuild
Worst-case của Quick Sort xảy ra khi:
Pivot luôn ở giữa
Pivot nhỏ nhất hoặc lớn nhất
Mảng ngẫu nhiên
Mảng đã sắp xếp
Độ phức tạp trung bình của Quick Sort:
O(n)
O(nlogn)
O(n2)
O(logn)
Quick Sort có phải ổn định?
Có
Không
Quick Sort có ưu điểm:
Không dùng đệ quy
Không dùng swap
In-place, nhanh trung bình
Không dùng partition
Quick Sort không phù hợp cho:
Mảng lớn
Array ngẫu nhiên
Linked List
Dùng nhiều RAM
Lựa chọn pivot tốt nhất:
Phần tử đầu
Phần tử cuối
Middle-of-three
Ngẫu nhiên
Quick Sort cần bộ nhớ phụ:
O(n)
O(logn)
O(1)
O(n2)
Trong Hoare partition, chỉ số trả về là:
Vị trí pivot cuối
Chỉ số phân ngăn
Chỉ số mid
Chỉ số swapped
Thuật toán nào là stable?
Quick Sort
Heap Sort
Selection Sort
Insertion Sort
Thuật toán nào luôn O(nlogn) trong mọi trường hợp?
Quick Sort
Merge Sort
Bubble Sort
Insertion Sort
Thuật toán nào cần thêm mảng phụ?
Merge Sort
Quick Sort
Heap Sort
Selection Sort
Thuật toán nào đúng best choice cho mảng gần sorted?
Insertion Sort
Merge Sort
Heap Sort
Quick Sort
Thuật toán tốt nhất về số lần hoán đổi?
Bubble Sort
Selection Sort
Insertion Sort
Quick Sort
Thuật toán nào dễ bị worst-case nếu không chọn pivot tốt?
Merge Sort
Quick Sort
Heap Sort
Selection Sort
Thuật toán nào sắp xếp tốt cho linked list?
Merge Sort
Quick Sort
Heap Sort
Bubble Sort
Thuật toán nào mang tính "chọn phần tử tốt nhất rồi fix vị trí"?
Bubble Sort
Quick Sort
Selection Sort
Merge Sort
Thuật toán nào dùng kỹ thuật phân hoạch?
Insertion Sort
Selection Sort
Quick Sort
Merge Sort
Interchange Sort có độ phức tạp thời gian trung bình là:
O(n)
O(nlogn)
O(n2)
O(logn)
Interchange Sort hoạt động dựa trên:
So sánh và đổi chỗ tất cả các cặp phần tử
Chèn vào vị trí đúng
Tìm phần tử nhỏ nhất
Chia để trị
Interchange Sort có phải thuật toán ổn định?
Có
Không
Interchange Sort khác Selection Sort ở điểm nào?
Không dùng swap
Swap nhiều lần thay vì swap một lần
Không dùng vòng lặp
Dùng mảng phụ
Worst-case của Interchange Sort là:
O(n)
O(nlogn)
O(n2)
O(1)
Interchange Sort thích hợp cho:
Mảng lớn
Mảng nhỏ
Mảng ngẫu nhiên rất lớn
Chuỗi ký tự dài
Interchange Sort có phải là in-place algorithm không?
Có
Không
Interchange Sort hoán đổi phần tử khi:
a[i]<a[j]
a[i]==a[j]
a[i]>a[j]
Không bao giờ hoán đổi
Số lần so sánh của Interchange Sort là:
nlogn
n
n2
logn
Interchange Sort gần giống thuật toán nào nhất?
Insertion Sort
Bubble Sort
Selection Sort
Merge Sort
