javascript对数组进行排序。首先定义要排序的数组。
var arr = [10,9,19,8,23,7,3];
然后定义一个用于交换数组中元素的方法
function swap(arr,i,j){
var temp = arr[i];
arr[i]=arr[j];
arr[j] = temp;
}
冒泡排序法
/*冒泡排序法*/
function bubbleSort(){
for (var i = arr.length-1; i > 0; i--) {
for(var j= 0;j<i;j++){
if(arr[j]>arr[j+1]){
swap(arr,j,j+1);
}
}
}
}
选择排序法
/*选择排序法*/
function selectSort(){
for (var i = 0; i < arr.length; i++) {
var min = i;
for(var j= i+1;j<arr.length;j++){
if(arr[min]>arr[j]){
min = j;
}
}
swap(arr,i,min);
}
}
插入排序法
/*插入排序法*/
function insertSort(){
for (var i = 1; i < arr.length; i++) {
var j = i;
var temp = arr[i];
while(j>0&&temp<arr[j-1]){
arr[j]=arr[--j];
}
arr[j] = temp;
}
}
快速排序法
/*快速排序法*/
function subQuikSort(arr,start,end){
if(end>start){
var temp = arr[start],
i = start,
j = end+1;
while(true){
while(i<end&&arr[++i]<temp);
while(j>start&&arr[--j]>temp);
if(i<j){
swap(arr,i,j);
}else{
break;
}
}
swap(arr,start,j);
subQuikSort(arr,start,j-1);
subQuikSort(arr,j+1,end);
}
}
function quikSort(){
return subQuikSort(arr,0,arr.length-1);
}