Js实现选择排序:
//选择排序
//1、假设最小值及最小值的下标
//2、依次比较找最小值及下标
//3、假设的最小值与实际的最小值换位
var arr = [2, 56, 7, 9, 34, 67];
document.write("原数组: "+ arr );
document.write("<br/>");
function selectSort(arr, flag) {
for (var i = 0; i < arr.length - 1; i++) {
var minIndex = i; //minIndex记录最小下标
for (var n = i + 1; n < arr.length; n++) {
if (flag == 1) {
if (arr[minIndex] > arr[n]) { //flag=1为升序
minIndex = n;
}
} else if(flag == 2){
if (arr[minIndex] < arr[n]) { //flag=2为降序
minIndex = n;
}
}
}
if (minIndex != i) { //根据最小元素的下标,将其放在数组元素的首位
// var temp = arr[minIndex]; //交换的方法一
// arr[minIndex] = arr[i];
// arr[i] = temp;
var temp = arr[i]; //交换的方法二
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
return arr;
}
// console.log(selectSort(arr,2)); //当参数为1时为升序,参数为2为降序
document.write("排序后的数组:"+selectSort(arr,2));