Open In App
Related Articles

Python Program for Insertion Sort

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

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)  # Get the length of the array
      
    if n <= 1:
        return  # If the array has 0 or 1 element, it is already sorted, so return
 
    for i in range(1, n):  # Iterate over the array starting from the second element
        key = arr[i]  # Store the current element as the key to be inserted in the right position
        j = i-1
        while j >= 0 and key < arr[j]:  # Move elements greater than key one position ahead
            arr[j+1] = arr[j]  # Shift elements to the right
            j -= 1
        arr[j+1] = key  # Insert the key in the correct position
  
# Sorting the array [12, 11, 13, 5, 6] using insertionSort
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!


Last Updated : 28 Aug, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads