一.冒泡排序 var arr1=[3,9,2,7,0,8,4]; for(var i=0;i<arr1.length;i++){ for(var j=i+1;j<arr1.length;j++){ var temp=0; if(arr1[i]>arr1[j]){ temp=arr1[i]; arr1 ...
一.冒泡排序
var arr1=[3,9,2,7,0,8,4];
for(var i=0;i<arr1.length;i++){
for(var j=i+1;j<arr1.length;j++){
var temp=0;
if(arr1[i]>arr1[j]){
temp=arr1[i];
arr1[i]=arr1[j];
arr1[j]=temp;
}
}
}
alert(arr1);
二.快速排序
var a=[3,5,0,9,2,7,5];
function quickSort(arr){
var len=a.length;
if(len<=1) return arr;
function sort(low,height){
var pivot=a[low];
var i=low,j=height,t;
if(i>j) return false;
while(i!=j){
while(a[j]>=pivot&&i<j){
j--;
}
while(a[i]<=pivot&&i<j){
i++;
}
if(i<j){//把比pivot大的換到右邊,小的換到左邊
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
//此時i和j指向同一個數字,把這個數字和pivot交換
a[low]=a[i];
a[i]=pivot;
//遞歸:把pivot左邊的數進行一次排序,右邊的數進行一次排序
sort(low,i-1);
sort(i+1,height);
}
//調用這個排序的函數
sort(0,len-1);
return a;
}
alert(quickSort(a));
三.選擇排序
var arr=[3,6,9,4,7,2,4,1];
var a=[],len=arr.length,t;
while(len>0){
for(var i=1;i<len;i++){
if(arr[0]>arr[i]){
t=arr[0];
arr[0]=arr[i];
arr[i]=t;
}
}
var num=arr.shift(arr[0]);//去掉arr[0]
a.push(num);
len--;
}
alert(a);