temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; is valid but missing let or var for temp and is verbose. arr[i], arr[minIndex] = arr[minIndex], arr[i]; is invalid syntax in JavaScript. swap(arr[i], arr[minIndex]); is a function call but no such built-in function exists.
Final Answer:
[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]; -> Option C
Hint: Use destructuring assignment for swapping in JavaScript [OK]
Common Mistakes:
Using Python-style tuple swap syntax
Calling undefined swap function
Forgetting to declare temporary variable
3. What will be the output array after running Selection Sort on [29, 10, 14, 37, 13]?
medium
A. [37, 29, 14, 13, 10]
B. [13, 10, 14, 29, 37]
C. [29, 10, 14, 37, 13]
D. [10, 13, 14, 29, 37]
Solution
Step 1: Perform Selection Sort step-by-step
Initial array: [29, 10, 14, 37, 13] Find smallest from index 0 to end: 10 at index 1, swap with 29. Array: [10, 29, 14, 37, 13] Find smallest from index 1 to end: 13 at index 4, swap with 29. Array: [10, 13, 14, 37, 29] Find smallest from index 2 to end: 14 at index 2, no swap. Find smallest from index 3 to end: 29 at index 4, swap with 37. Array: [10, 13, 14, 29, 37]
Step 2: Confirm final sorted array
The array is sorted in ascending order: [10, 13, 14, 29, 37].
Final Answer:
[10, 13, 14, 29, 37] -> Option D
Quick Check:
Sorted array = [10, 13, 14, 29, 37] [OK]
Hint: Selection Sort places smallest element at front each pass [OK]
Common Mistakes:
Not swapping correctly after finding minimum
Confusing index positions during swaps
Assuming array is unchanged
4. Identify the error in this Selection Sort code snippet:
function selectionSort(arr) {
for (let i = 0; i < arr.length; i++) {
let minIndex = i;
for (let j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
arr[i] = arr[minIndex];
arr[minIndex] = arr[i];
}
return arr;
}
medium
A. Swapping lines overwrite values causing incorrect swaps
B. Loop ranges are incorrect, should be j < arr.length - 1
C. minIndex should be initialized outside the outer loop
D. Function does not return the sorted array
Solution
Step 1: Analyze the swap logic
The swap is done by assigning arr[i] = arr[minIndex] first, then arr[minIndex] = arr[i]. This overwrites arr[i] before assigning to arr[minIndex], causing both to have the same value.
Step 2: Correct swap method
Use a temporary variable or destructuring assignment to swap without overwriting: let temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp;
Final Answer:
Swapping lines overwrite values causing incorrect swaps -> Option A
Hint: Use temp variable or destructuring to swap safely [OK]
Common Mistakes:
Swapping without temp variable
Incorrect loop boundaries
Not returning the array
5. Given an array with duplicate values [4, 2, 4, 3, 2], how many swaps will Selection Sort perform to fully sort it?
hard
A. 3
B. 5
C. 4
D. 2
Solution
Step 1: Trace Selection Sort swaps on the array
Initial array: [4, 2, 4, 3, 2] Pass 1: smallest from index 0-4 is 2 at index 1, swap with 4 at index 0. Array: [2, 4, 4, 3, 2] (1 swap) Pass 2: smallest from index 1-4 is 2 at index 4, swap with 4 at index 1. Array: [2, 2, 4, 3, 4] (2 swaps) Pass 3: smallest from index 2-4 is 3 at index 3, swap with 4 at index 2. Array: [2, 2, 3, 4, 4] (3 swaps) Pass 4: smallest from index 3-4 is 4 at index 3, no swap. Pass 5: last element, no swap.
Step 2: Count total swaps
Total swaps performed = 3.
Final Answer:
3 -> Option A
Quick Check:
Count swaps during passes = 3 [OK]
Hint: Count swaps only when minimum index differs from current index [OK]
Common Mistakes:
Counting all comparisons as swaps
Ignoring swaps when minIndex equals current index
Assuming duplicates reduce swaps to zero
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.