搜集的别人的排序方法
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>