Selection Sort

Selection Sort :

Author(s) : Unknown Date : 1956

Selection sort is an in-place comparison sorting algorithm. It has an O(n²) time complexity, which makes it inefficient on large lists, and generally performs worse than the similar insertion sort. Selection sort is noted for its simplicity and has performance advantages over more complicated algorithms in certain situations, particularly where auxiliary memory is limited.

Time Complexity O(n²)
Best Case O(n²)
Worst Case O(n²)
Space Complexity O(1)
Stable No

Code Integration:

* the code might contain some bugs or may not work correctly

Python JavaScript Java Go C
def selection_sort(arr):
	n = len(arr)
	for i in range(n):
		min_idx = i
		for j in range(i + 1, n):
			if arr[j] < arr[min_idx]:
				min_idx = j
		arr[i], arr[min_idx] = arr[min_idx], arr[i]
function selectionSort(arr) {
	let n = arr.length;
	for (let i = 0; i < n; i++) {
		let minIdx = i;
		for (let j = i + 1; j < n; j++) {
			if (arr[j] < arr[minIdx]) {
				minIdx = j;
			}
		}
		[arr[i], arr[minIdx]] = [arr[minIdx], arr[i]];
	}
}
public static void selectionSort(int[] arr) {
	int n = arr.length;
	for (int i = 0; i < n - 1; i++) {
		int minIdx = i;
		for (int j = i + 1; j < n; j++) {
			if (arr[j] < arr[minIdx]) {
				minIdx = j;
			}
		}
		int temp = arr[minIdx];
		arr[minIdx] = arr[i];
		arr[i] = temp;
	}
}
func selectionSort(arr []int) {
	n := len(arr)
	for i := 0; i < n-1; i++ {
		minIdx := i
		for j := i + 1; j < n; j++ {
			if arr[j] < arr[minIdx] {
				minIdx = j
			}
		}
		arr[i], arr[minIdx] = arr[minIdx], arr[i]
	}
}
void selectionSort(int arr[], int n) {
	for (int i = 0; i < n - 1; i++) {
		int minIdx = i;
		for (int j = i + 1; j < n; j++) {
			if (arr[j] < arr[minIdx]) {
				minIdx = j;
			}
		}
		int temp = arr[minIdx];
		arr[minIdx] = arr[i];
		arr[i] = temp;
	}
}
light dark