学习数组排序中的冒泡排序,快速排序,插入排序

搜集的别人的排序方法

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> 
原文地址:https://www.cnblogs.com/c-and-unity/p/4533427.html