選擇排序是一種比較原址的比較排序算法。先找到數(shù)據(jù)結(jié)構(gòu)中最小值并放在第一位,接著找到第二小的值放在第二位
選擇排序的算法實(shí)現(xiàn):
function SelectSort() {
? ? const array = [];
? ? this.insert = function(item) {
? ? ? ? array.push(item);
? ? }
? ? this.toString = function() {
? ? ? ? return array.join();
? ? }
? ? const swap = function(index1, index2) {
? ? ? ? const temp = array[index1];
? ? ? ? array[index1] = array[index2];
? ? ? ? array[index2] = temp;
? ? }
? ? this.selectSort = function() {
? ? ? ? for(let i=0; i< array.length; i++) {
? ? ? ? ? ? let indexMin = i
? ? ? ? ? ? for(let j=i; j<array.length; j++) {
? ? ? ? ? ? ? ? if(array[indexMin] > array[j]) {
? ? ? ? ? ? ? ? ? ? indexMin = j;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? if(i !== indexMin) {
? ? ? ? ? ? ? ? swap(i, indexMin);
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
var arr = new SelectSort();
arr.insert(3);
arr.insert(13);
arr.insert(32);
arr.insert(23);
arr.insert(11);
arr.insert(8);
arr.insert(33);
arr.insert(28);
console.log(arr.toString()); // 3,13,32,23,11,8,33,28
arr.selectSort();
console.log(arr.toString()); // 3,8,11,13,23,28,32,33