搜集的别人的排序方法
http://www.cnblogs.com/CareySon/archive/2011/10/28/2227703.html
搜集的别人看似简洁的写法
//冒泡排序
function sortBubble(array){
var len=array.length,i,j,tmp;
for(i=len-1;i>=1;i--){
for(j=0;j<=i-1;j++){
if(array[j]>array[j+1]){
d=array[j+1];
array[j+1]=array[j];
array[j]=d;
}
}
}
return array;
}
//快速排序
function sortQuick(array){
var low=0,high=array.length-1;
var sort=function(low,high){
if(low==high){
return;
}
var key=array[low];
var tmplow=low;
var tmphigh=high;
while(low<high){
while(low<high&&key<=array[high]){
--high;
}
array[low]=array[high];
while(low<high&&array[low]<=key)
{
++low;
}
array[high]=array[low];
if(low==tmplow){
sort(++low,tmphigh);
return;
}
};
array[low]=key;
sort(tmplow,low-1);
sort(high+1,tmphigh);
};
sort(low,high);
sort();
return array;
}
//插入排序
function sortInsert(array){
var i=1,j,len=array.length,key;
for(;i<len;i++){
j=i;
key=array[j];
while(--j>-1){
if(array[j]>key){
array[j+1]=array[j];
}
else
{
break;
}
}
array[j+1]=key;
}
return array;
}
相对完整的冒泡排序的写法
function sort(elements){
for(var i=0;i<elements.length-1;i++){
for(var j=0;j<elements.length-i-1;j++){
if(elements[j]>elements[j+1]){
var swap=elements[j];
elements[j]=elements[j+1];
elements[j+1]=swap;
}
}
}
}
var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];
console.log('before: ' + elements);
sort(elements);
console.log(' after: ' + elements);
另一种写法
<script language="JavaScript" type="text/javascript">
<!--
function bubbleSort(arr){
//外层循环,共要进行arr.length次求最大值操作
for(var i=0;i<arr.length;i++){
//内层循环,找到第i大的元素,并将其和第i个元素交换
for(var j=i;j<arr.length;j++){
if(arr[i]<arr[j]){
//交换两个元素的位置
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
var arr=[32,55,78,43,78,10,45,20,9,89];
bubbleSort(arr);
//输出:89,78,78,55,45,43,32,20,10,9
for(var i=0;i<arr.length;i++){
document.write(arr[i]+",");
}
//-->
</script>