Selection Sort - Python
Selection Sort is one of the simplest comparison-based sorting algorithms. It sorts an array by repeatedly finding the smallest (or largest) element from the unsorted portion and placing it in its correct position.
Working of Selection Sort
- Start from the first element and find the smallest element in the entire array by iterating over it.
- Swap this smallest element with the first element.
- Now, move to the second element find the next smallest in the remaining unsorted portion and swap it with the second position.
- Repeat this process until the entire array becomes sorted.
Python Implementation
def selectionSort(array, size):
for ind in range(size):
min_index = ind
for j in range(ind + 1, size):
if array[j] < array[min_index]:
min_index = j
array[ind], array[min_index] = array[min_index], array[ind]
arr = [-2, 45, 0, 11, -9, 88, -97, -202, 747]
size = len(arr)
selectionSort(arr, size)
print(arr)
Output
[-202, -97, -9, -2, 0, 11, 45, 88, 747]
Explanation:
- for ind in range(size) (Outer loop): Iterates through each index, treating it as the start of the unsorted portion.
- min_index = ind: Assumes the current index holds the smallest element.
- for j in range(ind + 1, size) (Inner loop): Finds the index of the minimum element in the unsorted part of the array.
- if array[j] < array[min_index]: Updates min_index whenever a smaller element is found.
- Swap step: Exchanges the smallest found element with the first element of the unsorted section.