X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=quick-select.js;h=57c4deeb2f423788cd4613a3bdb69d700b62a8cb;hb=da8d42f6bee8d0ff2a0f1b5b3e1b8cdc82b57ad1;hp=cf8f23540d31add705554d9ccb71ac4b3339e0ca;hpb=ed2968f2ee816cb47841f537bcbfb8590aa7bbb9;p=benchmarks-js.git diff --git a/quick-select.js b/quick-select.js index cf8f235..57c4dee 100644 --- a/quick-select.js +++ b/quick-select.js @@ -3,6 +3,10 @@ const { generateRandomInteger, LIST_FORMATTER } = require('./benchmark-utils') const suite = new Benchmark.Suite() +/** + * @param numberOfWorkers + * @param maxNumberOfTasksPerWorker + */ function generateRandomTasksMap ( numberOfWorkers, maxNumberOfTasksPerWorker = 10 @@ -17,6 +21,9 @@ function generateRandomTasksMap ( const tasksMap = generateRandomTasksMap(60, 20) +/** + * @param tasksMap + */ function loopSelect (tasksMap) { let minValue = Infinity let minKey @@ -31,6 +38,9 @@ function loopSelect (tasksMap) { return [minKey, minValue] } +/** + * @param tasksMap + */ function arraySortSelect (tasksMap) { const tasksArray = Array.from(tasksMap) return tasksArray.sort((a, b) => { @@ -55,12 +65,24 @@ const randomPivotIndexSelect = (leftIndex, rightIndex) => { return generateRandomInteger(leftIndex, rightIndex) } +/** + * @param array + * @param index1 + * @param index2 + */ function swap (array, index1, index2) { const tmp = array[index1] array[index1] = array[index2] array[index2] = tmp } +/** + * @param array + * @param leftIndex + * @param rightIndex + * @param pivotIndex + * @param compare + */ function partition ( array, leftIndex, @@ -81,6 +103,14 @@ function partition ( return storeIndex } +/** + * @param array + * @param k + * @param leftIndex + * @param rightIndex + * @param compare + * @param pivotIndexSelect + */ function selectLoop ( array, k, @@ -103,6 +133,14 @@ function selectLoop ( } } +/** + * @param array + * @param k + * @param leftIndex + * @param rightIndex + * @param compare + * @param pivotIndexSelect + */ function selectRecursion ( array, k, @@ -123,6 +161,9 @@ function selectRecursion ( } } +/** + * @param tasksMap + */ function quickSelectLoop (tasksMap) { const tasksArray = Array.from(tasksMap) @@ -131,6 +172,9 @@ function quickSelectLoop (tasksMap) { }) } +/** + * @param tasksMap + */ function quickSelectLoopRandomPivot (tasksMap) { const tasksArray = Array.from(tasksMap) @@ -146,6 +190,9 @@ function quickSelectLoopRandomPivot (tasksMap) { ) } +/** + * @param tasksMap + */ function quickSelectRecursion (tasksMap) { const tasksArray = Array.from(tasksMap) @@ -154,6 +201,9 @@ function quickSelectRecursion (tasksMap) { }) } +/** + * @param tasksMap + */ function quickSelectRecursionRandomPivot (tasksMap) { const tasksArray = Array.from(tasksMap)