Sorting methods that decide the order by comparing elements with each other, like checking if one number is bigger or smaller than another.
Click to reveal answer
beginner
Name two common comparison based sorting algorithms.
Bubble Sort and Quick Sort are examples where elements are compared to decide their order.
Click to reveal answer
beginner
What is non comparison based sorting?
Sorting methods that do not compare elements directly but use other properties like counting or digit positions to sort.
Click to reveal answer
beginner
Give an example of a non comparison based sorting algorithm.
Counting Sort is a non comparison based method that counts how many times each value appears to sort the list.
Click to reveal answer
intermediate
Which type of sorting can be faster than comparison based sorting for certain data and why?
Non comparison based sorting can be faster because it uses direct information like counts or digit places instead of comparing elements, especially when data range is limited.
Click to reveal answer
Which sorting method uses direct element comparisons?
ANon comparison based sorting
BComparison based sorting
CCounting Sort
DBucket Sort
✗ Incorrect
Comparison based sorting relies on comparing elements to decide order.
Which algorithm is an example of non comparison based sorting?
AMerge Sort
BQuick Sort
CCounting Sort
DHeap Sort
✗ Incorrect
Counting Sort uses counting of elements instead of comparisons.
What is the best time complexity lower bound for comparison based sorting?
AO(n log n)
BO(n)
CO(n^2)
DO(log n)
✗ Incorrect
Comparison based sorting cannot be faster than O(n log n) in the average case.
Which sorting type can sort in linear time under certain conditions?
AComparison based sorting
BBubble Sort
CInsertion Sort
DNon comparison based sorting
✗ Incorrect
Non comparison based sorting like Counting Sort can run in O(n) if data range is small.
Which of these is NOT a comparison based sorting algorithm?
ARadix Sort
BHeap Sort
CQuick Sort
DMerge Sort
✗ Incorrect
Radix Sort sorts based on digit positions, not comparisons.
Explain the main difference between comparison based and non comparison based sorting.
Think about how the sorting decides order.
You got /3 concepts.
Describe when non comparison based sorting can be more efficient than comparison based sorting.
Consider the data properties and algorithm approach.
You got /3 concepts.
Practice
(1/5)
1. Which of the following sorting algorithms is non-comparison based?
easy
A. Quick Sort
B. Merge Sort
C. Counting Sort
D. Heap Sort
Solution
Step 1: Understand comparison based sorting
Merge Sort, Quick Sort, and Heap Sort sort by comparing elements to decide order.
Step 2: Identify non-comparison based sorting
Counting Sort uses counting frequencies, not comparisons, to sort elements.
Final Answer:
Counting Sort -> Option C
Quick Check:
Counting Sort = Non-comparison based [OK]
Hint: Counting Sort uses counts, not comparisons [OK]
Common Mistakes:
Confusing Quick Sort as non-comparison
Thinking Heap Sort is non-comparison
Assuming all sorts use comparisons
2. Which of the following is the correct syntax to call Radix Sort function in C if the function is defined as void radixSort(int arr[], int n);?
easy
A. radixSort();
B. radixSort(n, arr);
C. radixSort(arr);
D. radixSort(arr, n);
Solution
Step 1: Check function definition
The function expects an integer array and its size as parameters in order.
Step 2: Match call with definition
Calling radixSort(arr, n); matches the expected parameters and order.
Final Answer:
radixSort(arr, n); -> Option D
Quick Check:
Function call matches parameters [OK]
Hint: Match function parameters order exactly [OK]
Common Mistakes:
Swapping parameters order
Missing array size argument
Calling without arguments
3. What will be the output array after applying Counting Sort on arr = {4, 2, 2, 8, 3, 3, 1}?
medium
A. [2, 2, 3, 3, 4, 8, 1]
B. [1, 2, 2, 3, 3, 4, 8]
C. [1, 3, 2, 4, 8, 3, 2]
D. [8, 4, 3, 3, 2, 2, 1]
Solution
Step 1: Count frequencies of each element
1:1, 2:2, 3:2, 4:1, 8:1
Step 2: Place elements in sorted order by frequency
Sorted array is [1, 2, 2, 3, 3, 4, 8]
Final Answer:
[1, 2, 2, 3, 3, 4, 8] -> Option B
Quick Check:
Counting Sort output = Sorted array [OK]
Hint: Counting Sort outputs sorted array by frequency [OK]
Common Mistakes:
Not counting duplicates correctly
Reversing order
Confusing input with output
4. The following code snippet attempts to perform Counting Sort but has a bug. What is the bug?
void countingSort(int arr[], int n) {
int output[n];
int count[10] = {0};
for (int i = 0; i <= n; i++) {
count[arr[i]]++;
}
for (int i = 1; i < 10; i++) {
count[i] += count[i - 1];
}
for (int i = n - 1; i >= 0; i--) {
output[count[arr[i]] - 1] = arr[i];
count[arr[i]]--;
}
for (int i = 0; i < n; i++) {
arr[i] = output[i];
}
}
medium
A. Loop condition should be i < n instead of i <= n in first for loop
B. Count array size is too small
C. Output array is not initialized
D. Final copy loop should run from i = 1
Solution
Step 1: Analyze first for loop range
The loop runs from i=0 to i<=n, which accesses arr[n], out of bounds.
Step 2: Correct loop condition
It should be i < n to avoid accessing outside array bounds.
Final Answer:
Loop condition should be i < n instead of i <= n in first for loop -> Option A
Quick Check:
Array index out of bounds fixed by i < n [OK]
Hint: Check loop bounds carefully for array indexing [OK]
Common Mistakes:
Ignoring off-by-one errors
Assuming count array size is wrong without input info
Thinking output array needs initialization
5. You have an array of integers where values range from 0 to 1000. Which sorting algorithm is best to sort this array efficiently and why?
hard
A. Counting Sort, because it sorts in O(n + k) where k is range
B. Quick Sort, because it has average O(n log n) time
C. Merge Sort, because it is stable and works well on linked lists
D. Heap Sort, because it uses a heap data structure
Solution
Step 1: Analyze input constraints
Values range from 0 to 1000, so range k = 1001 is small and fixed.
Step 2: Choose sorting algorithm based on range
Counting Sort runs in O(n + k), which is efficient for small k compared to comparison sorts O(n log n).
Final Answer:
Counting Sort, because it sorts in O(n + k) where k is range -> Option A
Quick Check:
Small range favors Counting Sort [OK]
Hint: Small range arrays use Counting Sort for linear time [OK]
Common Mistakes:
Choosing Quick Sort ignoring range advantage
Confusing stability with speed
Ignoring Counting Sort's range dependency
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.