1.冒泡排序
比较相邻的两个元素,然后进行交换
从小到大:
maopao(arr);
function maopao(num) {
var temp=null;
for(var i=0;i<num.length;i++){
for(var j=0;j<num.length-1;j++){
if(num[j]>num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
return num;
}
2.快速排序
先选一个中间数,将数组分割成独立的两部分,其中一部分记录比它小的,另一部分记录比它大的
quick(arr);
function quick(num) {
if(num.length<=1){
return num;
}
var centerIndex=parseInt(num.length/2);
var center=num.splice(centerIndex,1);
var left=[];
var right=[];
for(var i=0;i<num.length;i++){
if(num[i]<center){
left.push(num[i]);
}
else{
right.push(num[i]);
}
}
return quick(left).concat(center).concat(quick(right));
}
3.选择排序
在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
select(arr);
function select(num) {
if(num.length<=1){
return num;
}
for(var i=0;i<num.length-1;i++){
var index=i;
var temp=null;
for(var j=i+1;j<num.length;j++){
if(num[j]<num[index]){
index=j;
}
}
temp=num[index];
num[index]=num[i];
num[i]=temp;
}
return num;
}
4.插入排序
与前面每一个元素进行比较,找到合适位置然后直接放置
insert(arr));
function insert(num) {
if(num.length<=1){
return num;
}
for(var i=1;i<num.length;i++){
var temp=null;
for(var j=i-1;j>=0;j--){
if(num[j+1]<num[j]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
return num;
}