
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Insertion Sort Algorithm
								Certification: Intermediate Level
								Accuracy: 50%
								Submissions: 8
								Points: 10
							
							Write a Python program that implements the Insertion Sort algorithm to sort a list of integers in ascending order. Insertion Sort builds the final sorted array one item at a time, taking one element from the input data in each iteration and inserting it into its correct position in the already sorted part of the array.
Example 1
- Input: [12, 11, 13, 5, 6]
- Output: [5, 6, 11, 12, 13]
- Explanation: 
    - Step 1: Take the input array [12, 11, 13, 5, 6].
- Step 2: Start with [12] as the sorted portion and [11, 13, 5, 6] as unsorted.
- Step 3: Take 11, compare with sorted elements, and insert: [11, 12] | [13, 5, 6].
- Step 4: Take 13, compare and insert: [11, 12, 13] | [5, 6].
- Step 5: Take 5, compare and insert: [5, 11, 12, 13] | [6].
- Step 6: Take 6, compare and insert: [5, 6, 11, 12, 13].
- Step 7: Return the sorted array [5, 6, 11, 12, 13].
 
Example 2
- Input: [64, 34, 25, 12, 22, 11, 90]
- Output: [11, 12, 22, 25, 34, 64, 90]
- Explanation: 
    - Step 1: Take the input array [64, 34, 25, 12, 22, 11, 90].
- Step 2: Start with [64] as the sorted portion and [34, 25, 12, 22, 11, 90] as unsorted.
- Step 3: Take 34, compare with sorted elements, and insert: [34, 64] | [25, 12, 22, 11, 90].
- Step 4: Take 25, compare and insert: [25, 34, 64] | [12, 22, 11, 90].
- Step 5: Continue this process for all elements.
- Step 6: Return the sorted array [11, 12, 22, 25, 34, 64, 90].
 
Constraints
- 1 ≤ len(arr) ≤ 10^3
- -10^6 ≤ arr[i] ≤ 10^6
- Time Complexity: O(n²), where n is the length of the array
- Space Complexity: O(1)
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Iterate through the array starting from the second element
- For each element, compare it with all elements in the sorted part of the array
- Shift all elements greater than the current element one position ahead
- Insert the current element at its correct position in the sorted part
- The sorted part of the array grows with each iteration
- Optimize by using binary search to find the insertion position
- For small arrays or nearly sorted arrays, Insertion Sort can be very efficient
