順序上分為兩種:從小到大的排序纹烹;從大到小的排序;
方法上分為四種:冒泡排序谬泌、快速排序滔韵、選擇排序逻谦、插入排序
(1)冒泡法是運(yùn)用遍歷數(shù)組進(jìn)行比較掌实,通過(guò)不斷的比較將最小值或者最大值一個(gè)一個(gè)的遍歷出來(lái);
案例:
```
var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7];
for(var i=0;i<array.length;i++){
for(var j=i+1;j<array.length;j++){
if(array[i]>array[j]){
a=array[j];
array[j]=array[i];
array[i]=a
}
}
}
consloe.log(array)
```
控制臺(tái)的輸出效果:
[0, 1, 1, 1, 2, 2, 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 34, 43, 43, 44, 45, 51, 56, 62, 65, 76, 324]
(2)快速排序法主要是運(yùn)用了Arrays中的一個(gè)方法Arrays.sort()實(shí)現(xiàn)邦马。
```
var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7];
arrat.sort(aSort);
function ?aSort(a贱鼻,b){
return a-b;
}
consloe.log(array)
控制臺(tái)的輸出效果:
[0, 1, 1, 1, 2, 2, 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 34, 43, 43, 44, 45, 51, 56, 62, 65, 76, 324]
```
(3)插入排序是選擇一個(gè)數(shù)組中的數(shù)據(jù),通過(guò)不斷的插入比較最后進(jìn)行排序
```
for(var i = 1, j, key; i <? array.length; i++){
j = i;
key = array[j];
while(--j > -1){
if(array[j] > key){
array[j+1] = array[j];
}else{
break;
}
}
array[j+1] = key;
}
console.log(array)
```
控制臺(tái)的輸出效果:
[0, 1, 1, 1, 2, 2, 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 34, 43, 43, 44, 45, 51, 56, 62, 65, 76, 324]
(4)選擇排序法是將數(shù)組的第一個(gè)數(shù)據(jù)作為最大或者最小的值滋将,然后通過(guò)
比較循環(huán)邻悬,輸出有序數(shù)組
```
var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7];?
for(var i=0; i<array.length;i++){
var min=i;
for(var j=i+1;j<array.length;j++){
if( array[min]>array[j] ){
min=j;
}
}
if(min!=i){
var temp=array[i];
array[i]=array[min];
array[min]=temp;
}
}
console.log(array)
```
控制臺(tái)的輸出效果:
[0, 1, 1, 1, 2, 2, 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 34, 43, 43, 44, 45, 51, 56, 62, 65, 76, 324]