Selection sort is a comparison-based sorting algorithm that is both effective and efficient. It adds one element per iteration. To shift the smallest element in the array to the beginning of the array, swap it with the front element.
Working of Selection Sort Algorithm
Get the list or array to be sorted.
Use the current index as the beginning index.
To discover the smallest element, traverse the unsorted part.
Swap the smallest element with the one at the current index.
Repeat steps 3–4 until you reach the end of the list.
If all of the elements have been sorted, the procedure is complete.
Complexity Analysis of Selection Sort Algorithm
Time Complexity
Best Case Complexity
This occurs when no sorting is necessary, implying that the array is already sorted. The best-case time complexity for selection sort is O(n2).
Average Case Complexity
This arises when the array elements are jumbled and do not appropriately climb or descend. The average case time complexity for the selection sort is O(n2).
Worst Case Complexity
This occurs when array members must be sorted in reverse order. That is, assume you need to sort the array elements in ascending order but the elements are in descending order. The worst-case time complexity for selection sort is O(n2).
Space Complexity
The selection sort method has a space complexity of O(1). We used a set amount of variables, and we don't need any extra memory space except for the loop variables and auxiliary variables like temp, size, and minidx.
Applications of Selection Sort Algorithm
Best for small Datasets: This technique is simple and efficient for tiny datasets when temporal complexity isn't an issue.
Embedded Systems: Its simplicity and small code footprint make it suitable for embedded systems with limited resources.
Other Algorithm Testing: This is a common technique for benchmarking and comparing the performance of more sophisticated sorting algorithms.
Partially Sorted Data: Works well with partially sorted data by reducing needless swaps, resulting in faster sorting times.
Costly Swapping: Efficient when swapping parts is expensive since it reduces the amount of swaps.
Advantages of Selection Sort Algorithm
Simple: Easy to learn and implement.
Space Efficient: Performs in-place sorting with minimal extra space.
Small datasets: Suitable for a few hundred or thousand elements.
Disadvantages of Selection Sort Algorithm
Time Complexity: Time complexity is O(n^2), which makes it slow for huge arrays.
Unstable: Does not maintain the relative order of items with equal keys.
Not optimal: Sorting comparisons and swaps are not always minimized.