📖 Scenario: You have a list of numbers that you want to arrange from smallest to largest, like organizing books by height on a shelf.
🎯 Goal: Build a program that sorts a list of numbers using the selection sort method, which finds the smallest number and puts it in the right place step by step.
📋 What You'll Learn
Create an array called numbers with the exact values: [29, 10, 14, 37, 13]
Create a variable called n that stores the length of the numbers array
Use a for loop with variable i to iterate from 0 to n - 1
Inside the loop, create a variable called minIndex and set it to i
Use a nested for loop with variable j to iterate from i + 1 to n
Inside the nested loop, compare numbers[j] with numbers[minIndex] and update minIndex if a smaller number is found
After the nested loop, swap the values at numbers[i] and numbers[minIndex]
Print the sorted numbers array
💡 Why This Matters
🌍 Real World
Sorting helps organize data like names, scores, or prices so we can find or compare them easily.
💼 Career
Understanding sorting algorithms is important for software development, data analysis, and optimizing performance.
Progress0 / 4 steps
1
Create the initial array
Create an array called numbers with these exact values: [29, 10, 14, 37, 13]
DSA Javascript
Hint
Use const numbers = [29, 10, 14, 37, 13]; to create the array.
2
Set up the length variable
Create a variable called n that stores the length of the numbers array
DSA Javascript
Hint
Use const n = numbers.length; to get the array length.
3
Implement the selection sort loops
Use a for loop with variable i from 0 to n - 1. Inside it, create minIndex set to i. Then use a nested for loop with variable j from i + 1 to n. Inside the nested loop, if numbers[j] is less than numbers[minIndex], update minIndex to j. After the nested loop, swap numbers[i] and numbers[minIndex].
DSA Javascript
Hint
Use two loops: outer loop with i, inner loop with j. Swap after finding the smallest number.
4
Print the sorted array
Print the numbers array after sorting using console.log(numbers)
DSA Javascript
Hint
Use console.log(numbers) to show the sorted array.
Practice
(1/5)
1. What is the main idea behind the Selection Sort algorithm?
easy
A. Divide the array into halves and merge sorted halves
B. Repeatedly find the smallest element and move it to the front
C. Swap adjacent elements if they are in wrong order repeatedly
D. Use a pivot to partition the array into smaller parts
Solution
Step 1: Understand Selection Sort process
Selection Sort works by finding the smallest element in the unsorted part and swapping it with the first unsorted element.
Step 2: Compare with other sorting methods
Other options describe Merge Sort, Bubble Sort, and Quick Sort, which are different algorithms.
Final Answer:
Repeatedly find the smallest element and move it to the front -> Option B
Quick Check:
Selection Sort = Find smallest and swap [OK]
Hint: Selection Sort always picks the smallest next element [OK]
Common Mistakes:
Confusing Selection Sort with Bubble Sort
Thinking it uses divide and conquer
Assuming it uses a pivot element
2. Which of the following is the correct syntax to swap two elements arr[i] and arr[minIndex] in JavaScript during Selection Sort?
easy
A. temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp;
B. arr[i], arr[minIndex] = arr[minIndex], arr[i];
C. [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
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.