<script>
//快速排序
//author:Hengda
//arr数组
//start 排序段落起始下标(含)
//end 排序段落终止下标(含)
//mode false 升序 ture 降序
//start end 待排序元素段的起止位置
function quickSort( arr, start, end, mode ){
var j,temp;
var i = start;
if( end - start > arr.length ) return arr;
if( start < end ){
divIndex = end;
divValue = arr[ divIndex ];
for( j = start; j <= end ; j++ ){
if( ( !mode && arr[j] <= divValue ) || ( mode && arr[j] >= divValue ) ){
temp = arr[ i ];
arr[ i ] = arr[ j ];
arr[ j ] = temp;
i++;
}
}
i--;
quickSort( arr, start, i-1 );
quickSort( arr, i, end );
}
return arr;
}
function makeData( n ){
var arr = [];
var i = n;
while( i-- ){
arr.push( Math.floor( Math.random() * n ) );
}
return arr;
}
arr = makeData( 1000000 );
arrString = JSON.stringify( arr );
arr1 = JSON.parse( arrString );
console.log( arr1 );
console.time( "快速排序" );
arr1 = quickSort( arr1, 0, arr1.length - 1, false );
console.timeEnd( "快速排序" );
console.log( arr1 );
arr2 = JSON.parse( arrString );
console.log( arr2 );
console.time( "快速排序" );
arr2 = quickSort( arr2, 0, arr2.length - 1, true );
console.timeEnd( "快速排序" );
console.log( arr2 );
</script>
快速排序算法实现(javascript语言)
猜你喜欢
转载自blog.csdn.net/one312/article/details/113066347
今日推荐
周排行