Selection Sort: Difference between revisions
Jump to navigation
Jump to search
(3 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
=Overview= | =Overview= | ||
It is an [[Sorting_Algorithms#In-place|in-place]] sorting algorithm. | It is an [[Sorting_Algorithms#In-place|in-place]] sorting algorithm. | ||
< | The best case and the worst case running time are both Θ(n<sup>2</sup>). | ||
=Algorithm= | |||
Selection sort scans the input array from left to right, determining the minimum elements in the subarray spanning from the current position to the end of the input array and then swap the current element with the minimum. | |||
<syntaxhighlight lang='java'> | |||
public void sort(int[] a) { | |||
for(int i = 0; i < a.length - 1; i ++) { | |||
int minIndex = i; | |||
for(int j = i + 1; j < a.length; j ++) { | |||
if (a[j] < a[minIndex]) { | |||
minIndex = j; | |||
} | |||
} | |||
if (i != minIndex) { | |||
// | |||
// swap | |||
// | |||
int tmp = a[i]; | |||
a[i] = a[minIndex]; | |||
a[minIndex] = tmp; | |||
} | } | ||
} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 22:07, 9 October 2021
Internal
Overview
It is an in-place sorting algorithm.
The best case and the worst case running time are both Θ(n2).
Algorithm
Selection sort scans the input array from left to right, determining the minimum elements in the subarray spanning from the current position to the end of the input array and then swap the current element with the minimum.
public void sort(int[] a) {
for(int i = 0; i < a.length - 1; i ++) {
int minIndex = i;
for(int j = i + 1; j < a.length; j ++) {
if (a[j] < a[minIndex]) {
minIndex = j;
}
}
if (i != minIndex) {
//
// swap
//
int tmp = a[i];
a[i] = a[minIndex];
a[minIndex] = tmp;
}
}
}