11const glob = require ( "glob" )
22const path = require ( "path" )
33const swap = require ( "./交换" )
4+ const random = require ( "./随机值" )
45
56function sortTest ( sortFns , source , desc ) {
67 console . log ( desc )
@@ -36,7 +37,6 @@ function getRandomArray(count) {
3637 for ( let i = 0 ; i < count ; i ++ ) {
3738 arr . push ( Math . floor ( i * Math . random ( ) * 10 ) )
3839 }
39-
4040 return arr
4141}
4242
@@ -55,6 +55,14 @@ function getNearlyArray(count, swapTime) {
5555 return arr
5656}
5757
58+ function getRangedArray ( count , min , max ) {
59+ const arr = [ ]
60+ for ( let i = 0 ; i < count ; i ++ ) {
61+ arr . push ( random ( min , max ) )
62+ }
63+ return arr
64+ }
65+
5866function isSorted ( target , source ) {
5967 return (
6068 target . toString ( ) ===
@@ -71,5 +79,6 @@ glob("排序/*.js", (err, result) => {
7179 . map ( ( p ) => require ( path . resolve ( p ) ) )
7280 . filter ( Boolean )
7381 sortTest ( sortFunctions , ( ) => getRandomArray ( 10000 ) , "普通数组排序" )
74- sortTest ( sortFunctions , ( ) => getNearlyArray ( 50000 ) , "近似数组排序" )
82+ sortTest ( sortFunctions , ( ) => getNearlyArray ( 10000 ) , "近似数组排序" )
83+ sortTest ( sortFunctions , ( ) => getRangedArray ( 10000 ) , "大量重复值元素排序" )
7584} )
0 commit comments