冒泡排序
<script type="text/javascript" charset="UTF-8">
var arr=[1,8,9,6,7,5,4];
for(var i=0; i<arr.length-1;i++){
for(var j=1;j<arr.length;j++){
if (arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
console.log("第"+(i+1)+"趟"+arr);
}
}
console.log(arr);
</script>
快速排序
<script type="text/javascript" charset="UTF-8">
var arr=[1,8,9,6,7,5,4];
function quick(arr) {
if(arr.length <= 1){
return arr;
}
console.log(arr);
var result=[];
var left=[];
var right=[];
var pivot=arr[0];//指针从arr[0]开始
//遍历数组下标,小的放在left[],大的放在right[]
for(var i=1;i<arr.length;i++){
if(arr[i]<pivot){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
//左右数组迭代并与指针数组
result=quick(left).concat(pivot,quick(right));
return result;
}
arr=quick(arr);
console.log(arr);
</script>
系统内置的sort方法
注意!简单的sort根据字符编码排序:
<script type="text/javascript" charset="UTF-8">
var arr=[10,8,9,6,7,5,4];
arr.sort();
console.log(arr);
</script>
正常排序:
<script type="text/javascript" charset="UTF-8">
var arr=[10,8,9,6,7,5,4];
arr.sort(function (a,b) {
/*或者是直接return a-b;*/
if(a>b){
return 1;
}else{
return -1;
}
});
console.log(arr);
</script>
sort函数十分好用,能够高度可自定义!完成按条件(按对象的某个属性)排序
<script type="text/javascript" charset="UTF-8">
var arr=[
{"name":"Tom","Math":49,"English":89},
{"name":"Mike","Math":29,"English":23},
{"name":"Amy","Math":69,"English":50}
];
//按数学成绩排序
arr.sort(function (a,b) {
if(a.Math>b.Math){
return 1;
}else{
return -1;
}
});
console.log(arr);
</script>