Introduction
Insertion Sort is a simple and efficient sorting algorithm. It works by building a sorted section of the array one element at a time. At each step, the algorithm picks the next element and inserts it into its correct position within the already sorted portion of the array. This algorithm is efficient for small datasets and is often used as an introductory algorithm to sorting.
Problem Statement
Create a JavaScript program that:
- Accepts an array of numbers.
- Sorts the array using the Insertion Sort algorithm.
- Returns and displays the sorted array.
Example:
Input:
[5, 2, 9, 1, 5, 6]
Output:
[1, 2, 5, 5, 6, 9]
Input:
[12, 11, 13, 5, 6]
Output:
[5, 6, 11, 12, 13]
Solution Steps
- Read the Input Array: Provide an array of numbers either as user input or directly within the code.
- Sort the Array: Implement the Insertion Sort algorithm to sort the array in ascending order.
- Display the Result: Print the sorted array.
JavaScript Program
// JavaScript Program to Implement the Insertion Sort Algorithm
// Author: https://www.javaguides.net/
function insertionSort(arr) {
// Step 1: Loop through the array starting from index 1
for (let i = 1; i < arr.length; i++) {
let key = arr[i];
let j = i - 1;
// Step 2: Compare the key with previous elements and move them if they are larger
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
// Step 3: Insert the key into its correct position
arr[j + 1] = key;
}
// Step 4: Return the sorted array
return arr;
}
// Example input
let array = [5, 2, 9, 1, 5, 6];
let sortedArray = insertionSort(array);
console.log(`The sorted array is: [${sortedArray}]`);
Output
The sorted array is: [1, 2, 5, 5, 6, 9]
Example with Different Input
let array = [12, 11, 13, 5, 6];
let sortedArray = insertionSort(array);
console.log(`The sorted array is: [${sortedArray}]`);
Output:
The sorted array is: [5, 6, 11, 12, 13]
Explanation
Step 1: Loop Through the Array
- The outer loop starts from index
1
because the element at index0
is considered to be already sorted. - The variable
key
stores the current element to be inserted in the correct position.
Step 2: Compare and Move Elements
- The inner
while
loop compares thekey
with the elements to its left (those already sorted). If an element is larger than thekey
, it is shifted one position to the right.
Step 3: Insert the Key
- Once the correct position is found, the
key
is inserted, and the sorted section grows by one element.
Step 4: Return the Sorted Array
- The sorted array is returned and printed using
console.log()
.
Conclusion
This JavaScript program demonstrates how to implement the Insertion Sort algorithm, which is efficient for small datasets and nearly sorted data. The algorithm builds the sorted section incrementally and is easy to understand, making it a great choice for learning sorting techniques. It has a time complexity of O(n²) in the worst case but can perform well on small or nearly sorted datasets.
Comments
Post a Comment
Leave Comment