IsolatedTraveler / blog

不积跬步无以至千里不积小流无以成江海
0 stars 0 forks source link

快排 #9

Open IsolatedTraveler opened 6 years ago

IsolatedTraveler commented 6 years ago

function sort(array,fun,left,right){ var left=left||0 ,right=right||array.length-1 ,fun=fun||function(a,b){ return a>b } ,once=function(array,left,right,fun){ var mid=Math.floor((left+right)/2),i=left,j=right while(i<j){ while(!fun(array[i],array[mid])&&i<mid){ i++ } while(!fun(array[mid],array[j])&&j>mid){ j-- } i!=j&&(i<j?swap(array,i,j):i<mid?swap(array,i,mid):swap(array,j,mid),i=left,j=right) } return mid }; if(right>left){ var index=once(array,left,right,fun) if(index-left>1){ sort(array,fun,left,index-1) } if(right-index>1){ sort(array,fun,index+1,right) } } } function swap(array,i,j){ var c=array[i]; array[i]=array[j] array[j]=c }