Insertion sort is a simple sorting algorithm that works the way we sort playing cards in our hands.
Python Program for Insertion Sort
The insertionSort function takes an array arr as input. It first calculates the length of the array (n). If the length is 0 or 1, the function returns immediately as an array with 0 or 1 element is considered already sorted.
For arrays with more than one element, the function proceeds to iterate over the array starting from the second element. It takes the current element (referred to as the “key”) and compares it with the elements in the sorted portion of the array that precede it. If the key is smaller than an element in the sorted portion, the function shifts that element to the right, creating space for the key. This process continues until the correct position for the key is found, and it is then inserted in that position.
The provided example demonstrates the sorting process using the insertion sort algorithm. The initial array [12, 11, 13, 5, 6] is subjected to the insertionSort function. After sorting, the array should be [5, 6, 11, 12, 13]. The code prints the sorted array as the final output.
Python
def insertionSort(arr):
n = len (arr)
if n < = 1 :
return
for i in range ( 1 , n):
key = arr[i]
j = i - 1
while j > = 0 and key < arr[j]:
arr[j + 1 ] = arr[j]
j - = 1
arr[j + 1 ] = key
arr = [ 12 , 11 , 13 , 5 , 6 ]
insertionSort(arr)
print (arr)
|
Output:
Sorted array is:
[5, 6, 11, 12, 13]
Time Complexity: O(N2)
Auxiliary Space: O(1)
Please refer complete article on Insertion Sort for more details!