![]() |
![]() |
|
![]() |
![]() |
Encyclopedia :
S :
SE :
SEL :
Selection sort |
|
|
Selection sortSelection sort is a sort algorithm that works as follows:
This algorithm, iterating through a list of n unsorted items, has a worst-case, average-case, and best-case run-time of &Theta(n2), assuming that comparisons can be done in constant time. It is generally out performed by insertion sort. Selection sort is not a stable sort. Heapsort greatly improves the basic algorithm by using a heap data structure to speed up finding and removing the lowest datum.
Implementations of Selection SortImplementation in C: for (i = 0; i < n-1; i++) { min = i; for (j = i+1; j < n; j++) { if (x[min] > x[j]) { min = j; } } temp = x[i]; x[i] = x[min]; x[min] = temp; } Implementation in Basic: Implementation in Java (iterative): for (int index = 0; index < numbers.length-1; index++)
{
min = index;
for (int scan = index+1; scan < numbers.length; scan++)
if (numbers[scan] < numbers[min])
min = scan;
// Swap the values
temp = numbers[min];
numbers[min] = numbers[index];
numbers[index] = temp;
}
}
Implementation in Java (recursive):// Selection sort for an array of ints public static int findMin(int[] array, int index) { int min = index - 1; if(index < array.length - 1) min = findMin(array, index + 1); if(array[index] < array[min]) min = index; return min; } public static void selectionSort(int[] array) { for(int left = 0; left < array.length - 1; left++) { swap(array, left, findMin(array, left)); } } public static void swap(int[] array, int index1, int index2) {//swap the two values int temp = array[index1]; array[index1] = array[index2]; array[index2] = temp; } |
|
|
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License. |
|
| © 2008 Chamas Enterprises Inc. |