1
1
const glob = require ( "glob" )
2
2
const path = require ( "path" )
3
3
const swap = require ( "./交换" )
4
+ const random = require ( "./随机值" )
4
5
5
6
function sortTest ( sortFns , source , desc ) {
6
7
console . log ( desc )
@@ -36,7 +37,6 @@ function getRandomArray(count) {
36
37
for ( let i = 0 ; i < count ; i ++ ) {
37
38
arr . push ( Math . floor ( i * Math . random ( ) * 10 ) )
38
39
}
39
-
40
40
return arr
41
41
}
42
42
@@ -55,6 +55,14 @@ function getNearlyArray(count, swapTime) {
55
55
return arr
56
56
}
57
57
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
+
58
66
function isSorted ( target , source ) {
59
67
return (
60
68
target . toString ( ) ===
@@ -71,5 +79,6 @@ glob("排序/*.js", (err, result) => {
71
79
. map ( ( p ) => require ( path . resolve ( p ) ) )
72
80
. filter ( Boolean )
73
81
sortTest ( sortFunctions , ( ) => getRandomArray ( 10000 ) , "普通数组排序" )
74
- sortTest ( sortFunctions , ( ) => getNearlyArray ( 50000 ) , "近似数组排序" )
82
+ sortTest ( sortFunctions , ( ) => getNearlyArray ( 10000 ) , "近似数组排序" )
83
+ sortTest ( sortFunctions , ( ) => getRangedArray ( 10000 ) , "大量重复值元素排序" )
75
84
} )
0 commit comments