顺序上分为两种:从小到大的排序;从大到小的排序;
方法上分为四种:冒泡排序、快速排序、选择排序、插入排序
(1)冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来;
案例:
```
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)
```
控制台的输出效果:
[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)快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。
```
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)
控制台的输出效果:
[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)插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序
```
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)
```
控制台的输出效果:
[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)选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过
比较循环,输出有序数组
```
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)
```
控制台的输出效果:
[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]