-
-
Save worker8/32e7217b9f6337368e0b to your computer and use it in GitHub Desktop.
| // roughly 10 mins | |
| var swap = function(array, firstIndex, secondIndex) { | |
| var temp = array[firstIndex]; | |
| array[firstIndex] = array[secondIndex]; | |
| array[secondIndex] = temp; | |
| }; | |
| var indexOfMinimum = function(array, startIndex) { | |
| var minValue = array[startIndex]; | |
| var minIndex = startIndex; | |
| for(var i = minIndex + 1; i < array.length; i++) { | |
| if(array[i] < minValue) { | |
| minIndex = i; | |
| minValue = array[i]; | |
| } | |
| } | |
| return minIndex; | |
| }; | |
| var selectionSort = function(array) { | |
| var minIndex = 0; | |
| var minValue = array[0]; | |
| for ( var i = 0; i < array.length; i++) { | |
| swap(array, i, indexOfMinimum(array, i)); | |
| } | |
| }; | |
| var array = [22, 11, 99, 88, 9, 7, 42]; | |
| selectionSort(array); | |
| println("Array after sorting: " + array); | |
| Program.assertEqual(array, [7, 9, 11, 22, 42, 88, 99]); | |
| array = [22, 11, 99, 88, 9, 7, 42,1]; | |
| selectionSort(array); | |
| Program.assertEqual(array, [1, 7, 9, 11, 22, 42, 88, 99]); | |
| array = [22, 11, 0, 88, 9, 7, 42,1]; | |
| selectionSort(array); | |
| Program.assertEqual(array, [0, 1, 7, 9, 11, 22, 42, 88]); |
This really help.
Below was my code......I've sweat my brain and sweat again but finally stamble on the above solutions. It helps
`var swap = function(array, firstIndex, secondIndex) {
var temp = array[firstIndex];
array[firstIndex] = array[secondIndex];
array[secondIndex] = temp;
};
var indexOfMinimum = function(array, startIndex) {
var minValue = array[startIndex];
var minIndex = startIndex;
for(var i = minIndex + 1; i < array.length; i++) {
if(array[i] < minValue) {
minIndex = i;
minValue = array[i];
}
}
return minIndex;
};
var selectionSort = function(array) {
var sortedArray;
for(var i = 0; i < array.length; i++){
sortedArray = indexOfMinimum(array, array[i]);
swap(array,i, i + 1));
}
};
var array = [22, 11, 99, 88, 9, 7, 42];
selectionSort(array);
println("Array after sorting: " + array);
Program.assertEqual(array, [7, 9, 11, 22, 42, 88, 99]);
var array = [22, 11, 99, 88, 9, -7, -42];
selectionSort(array);
println("Array after sorting: " + array);
Program.assertEqual(array, [-42,-7,9,11,22,88,99]);
`
Thx