js基本排序算法有三种:
一、冒泡排序:
function bubbleSort(arr){
for(var i=0; i<arr.length;i++){
for (var j = 0; j < arr.length-i; j++) {
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
var array = [1,0,3,3,5,4,5,0,6,7];
alert(bubbleSort(array)); //0,0,1,3,3,4,5,5,6,7
二、选择排序(选择最小的放在第一个位置,次小的放在第二个位置……):
function selectSort(arr){
// 比较到倒数第二个就行
for (var i = 0; i < arr.length-1; i++) {
// 从第i+1个开始比较
// 找出第i至arr.length-1中最小的一个数,并与第i个交换
// min:最小值的序号
var min = i;
for (var j = i+1; j < arr.length; j++) {
if(arr[j] < arr[min]){
min = j;
}
}
var temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
return arr;
}
三、插入排序(将元素插入到合适的位置)可以直接在一个数组里操作:
function insertSort(arr){
// 第一个元素不需要比较,所以直接从下标1开始
for (var i = 1; i < arr.length; i++) {
// 与前面排好序的进行比较,插入合适位置
// 需要提前记录当前带比较的数,不然后面可能会被修改
var temp = arr[i];
var j = i;
while(j > 0 && temp < arr[j-1]){
arr[j] = arr[j-1];
j--;
}
arr[j] = temp;
console.log(arr);
}
return arr;
}