@@ -11,6 +11,8 @@ import (
1111 "github.com/kdgyun/GoSortingAlgorithms/sorts"
1212)
1313
14+ var lengthforbench = 1 << 16
15+
1416func sliceBuilder (len int ) []int {
1517 seed , _ := crand .Int (crand .Reader , big .NewInt (math .MaxInt64 ))
1618 rand .Seed (seed .Int64 ())
@@ -27,7 +29,7 @@ func sliceBuilder(len int) []int {
2729
2830func BenchmarkBubbleSort (b * testing.B ) {
2931 b .StopTimer ()
30- unsorted := sliceBuilder (100000 )
32+ unsorted := sliceBuilder (lengthforbench )
3133 test := make ([]int , len (unsorted ))
3234
3335 for i := 0 ; i < b .N ; i ++ {
@@ -40,7 +42,7 @@ func BenchmarkBubbleSort(b *testing.B) {
4042
4143func BenchmarkCocktailSort (b * testing.B ) {
4244 b .StopTimer ()
43- unsorted := sliceBuilder (100000 )
45+ unsorted := sliceBuilder (lengthforbench )
4446 test := make ([]int , len (unsorted ))
4547
4648 for i := 0 ; i < b .N ; i ++ {
@@ -53,7 +55,7 @@ func BenchmarkCocktailSort(b *testing.B) {
5355
5456func BenchmarkInsertionSort (b * testing.B ) {
5557 b .StopTimer ()
56- unsorted := sliceBuilder (100000 )
58+ unsorted := sliceBuilder (lengthforbench )
5759 test := make ([]int , len (unsorted ))
5860
5961 for i := 0 ; i < b .N ; i ++ {
@@ -66,7 +68,7 @@ func BenchmarkInsertionSort(b *testing.B) {
6668
6769func BenchmarkSelectionSort (b * testing.B ) {
6870 b .StopTimer ()
69- unsorted := sliceBuilder (100000 )
71+ unsorted := sliceBuilder (lengthforbench )
7072 test := make ([]int , len (unsorted ))
7173
7274 for i := 0 ; i < b .N ; i ++ {
@@ -79,7 +81,7 @@ func BenchmarkSelectionSort(b *testing.B) {
7981
8082func BenchmarkShellSort (b * testing.B ) {
8183 b .StopTimer ()
82- unsorted := sliceBuilder (100000 )
84+ unsorted := sliceBuilder (lengthforbench )
8385 test := make ([]int , len (unsorted ))
8486
8587 for i := 0 ; i < b .N ; i ++ {
@@ -92,7 +94,7 @@ func BenchmarkShellSort(b *testing.B) {
9294
9395func BenchmarkBottomUpMergeSort (b * testing.B ) {
9496 b .StopTimer ()
95- unsorted := sliceBuilder (100000 )
97+ unsorted := sliceBuilder (lengthforbench )
9698 test := make ([]int , len (unsorted ))
9799
98100 for i := 0 ; i < b .N ; i ++ {
@@ -105,7 +107,7 @@ func BenchmarkBottomUpMergeSort(b *testing.B) {
105107
106108func BenchmarkTopDownMergeSort (b * testing.B ) {
107109 b .StopTimer ()
108- unsorted := sliceBuilder (100000 )
110+ unsorted := sliceBuilder (lengthforbench )
109111 test := make ([]int , len (unsorted ))
110112
111113 for i := 0 ; i < b .N ; i ++ {
@@ -118,7 +120,7 @@ func BenchmarkTopDownMergeSort(b *testing.B) {
118120
119121func BenchmarkParallelMergeSort (b * testing.B ) {
120122 b .StopTimer ()
121- unsorted := sliceBuilder (100000 )
123+ unsorted := sliceBuilder (lengthforbench )
122124 test := make ([]int , len (unsorted ))
123125
124126 for i := 0 ; i < b .N ; i ++ {
@@ -131,7 +133,7 @@ func BenchmarkParallelMergeSort(b *testing.B) {
131133
132134func BenchmarkHeapSort (b * testing.B ) {
133135 b .StopTimer ()
134- unsorted := sliceBuilder (100000 )
136+ unsorted := sliceBuilder (lengthforbench )
135137 test := make ([]int , len (unsorted ))
136138
137139 for i := 0 ; i < b .N ; i ++ {
@@ -144,7 +146,7 @@ func BenchmarkHeapSort(b *testing.B) {
144146
145147func BenchmarkQuickSortLP (b * testing.B ) {
146148 b .StopTimer ()
147- unsorted := sliceBuilder (100000 )
149+ unsorted := sliceBuilder (lengthforbench )
148150 test := make ([]int , len (unsorted ))
149151
150152 for i := 0 ; i < b .N ; i ++ {
@@ -157,7 +159,7 @@ func BenchmarkQuickSortLP(b *testing.B) {
157159
158160func BenchmarkQuickSort (b * testing.B ) {
159161 b .StopTimer ()
160- unsorted := sliceBuilder (100000 )
162+ unsorted := sliceBuilder (lengthforbench )
161163 test := make ([]int , len (unsorted ))
162164
163165 for i := 0 ; i < b .N ; i ++ {
@@ -170,7 +172,7 @@ func BenchmarkQuickSort(b *testing.B) {
170172
171173func BenchmarkQuickSortRP (b * testing.B ) {
172174 b .StopTimer ()
173- unsorted := sliceBuilder (100000 )
175+ unsorted := sliceBuilder (lengthforbench )
174176 test := make ([]int , len (unsorted ))
175177
176178 for i := 0 ; i < b .N ; i ++ {
@@ -183,7 +185,7 @@ func BenchmarkQuickSortRP(b *testing.B) {
183185
184186func BenchmarkParallelQuickSortLP (b * testing.B ) {
185187 b .StopTimer ()
186- unsorted := sliceBuilder (100000 )
188+ unsorted := sliceBuilder (lengthforbench )
187189 test := make ([]int , len (unsorted ))
188190
189191 for i := 0 ; i < b .N ; i ++ {
@@ -196,7 +198,7 @@ func BenchmarkParallelQuickSortLP(b *testing.B) {
196198
197199func BenchmarkParallelQuickSort (b * testing.B ) {
198200 b .StopTimer ()
199- unsorted := sliceBuilder (100000 )
201+ unsorted := sliceBuilder (lengthforbench )
200202 test := make ([]int , len (unsorted ))
201203
202204 for i := 0 ; i < b .N ; i ++ {
@@ -209,7 +211,7 @@ func BenchmarkParallelQuickSort(b *testing.B) {
209211
210212func BenchmarkParallelQuickSortRP (b * testing.B ) {
211213 b .StopTimer ()
212- unsorted := sliceBuilder (100000 )
214+ unsorted := sliceBuilder (lengthforbench )
213215 test := make ([]int , len (unsorted ))
214216
215217 for i := 0 ; i < b .N ; i ++ {
@@ -222,7 +224,7 @@ func BenchmarkParallelQuickSortRP(b *testing.B) {
222224
223225func BenchmarkDualPivotQuickSort (b * testing.B ) {
224226 b .StopTimer ()
225- unsorted := sliceBuilder (100000 )
227+ unsorted := sliceBuilder (lengthforbench )
226228 test := make ([]int , len (unsorted ))
227229
228230 for i := 0 ; i < b .N ; i ++ {
@@ -235,7 +237,7 @@ func BenchmarkDualPivotQuickSort(b *testing.B) {
235237
236238func BenchmarkParallelDualPivotQuickSort (b * testing.B ) {
237239 b .StopTimer ()
238- unsorted := sliceBuilder (100000 )
240+ unsorted := sliceBuilder (lengthforbench )
239241 test := make ([]int , len (unsorted ))
240242
241243 for i := 0 ; i < b .N ; i ++ {
@@ -248,7 +250,7 @@ func BenchmarkParallelDualPivotQuickSort(b *testing.B) {
248250
249251func BenchmarkBinarySort (b * testing.B ) {
250252 b .StopTimer ()
251- unsorted := sliceBuilder (100000 )
253+ unsorted := sliceBuilder (lengthforbench )
252254 test := make ([]int , len (unsorted ))
253255
254256 for i := 0 ; i < b .N ; i ++ {
@@ -261,7 +263,7 @@ func BenchmarkBinarySort(b *testing.B) {
261263
262264func BenchmarkTimSort (b * testing.B ) {
263265 b .StopTimer ()
264- unsorted := sliceBuilder (100000 )
266+ unsorted := sliceBuilder (lengthforbench )
265267 test := make ([]int , len (unsorted ))
266268
267269 for i := 0 ; i < b .N ; i ++ {
@@ -274,7 +276,7 @@ func BenchmarkTimSort(b *testing.B) {
274276
275277func BenchmarkBitonicSort (b * testing.B ) {
276278 b .StopTimer ()
277- unsorted := sliceBuilder (100000 )
279+ unsorted := sliceBuilder (lengthforbench )
278280 test := make ([]int , len (unsorted ))
279281
280282 for i := 0 ; i < b .N ; i ++ {
@@ -287,7 +289,7 @@ func BenchmarkBitonicSort(b *testing.B) {
287289
288290func BenchmarkParallelBitonicSort (b * testing.B ) {
289291 b .StopTimer ()
290- unsorted := sliceBuilder (100000 )
292+ unsorted := sliceBuilder (lengthforbench )
291293 test := make ([]int , len (unsorted ))
292294
293295 for i := 0 ; i < b .N ; i ++ {
@@ -300,7 +302,7 @@ func BenchmarkParallelBitonicSort(b *testing.B) {
300302
301303func BenchmarkIntroSort (b * testing.B ) {
302304 b .StopTimer ()
303- unsorted := sliceBuilder (100000 )
305+ unsorted := sliceBuilder (lengthforbench )
304306 test := make ([]int , len (unsorted ))
305307
306308 for i := 0 ; i < b .N ; i ++ {
@@ -313,7 +315,7 @@ func BenchmarkIntroSort(b *testing.B) {
313315
314316func BenchmarkParallelIntroSort (b * testing.B ) {
315317 b .StopTimer ()
316- unsorted := sliceBuilder (100000 )
318+ unsorted := sliceBuilder (lengthforbench )
317319 test := make ([]int , len (unsorted ))
318320
319321 for i := 0 ; i < b .N ; i ++ {
@@ -326,7 +328,7 @@ func BenchmarkParallelIntroSort(b *testing.B) {
326328
327329func BenchmarkCycleSort (b * testing.B ) {
328330 b .StopTimer ()
329- unsorted := sliceBuilder (100000 )
331+ unsorted := sliceBuilder (lengthforbench )
330332 test := make ([]int , len (unsorted ))
331333
332334 for i := 0 ; i < b .N ; i ++ {
@@ -339,7 +341,7 @@ func BenchmarkCycleSort(b *testing.B) {
339341
340342func BenchmarkOddEvenSort (b * testing.B ) {
341343 b .StopTimer ()
342- unsorted := sliceBuilder (100000 )
344+ unsorted := sliceBuilder (lengthforbench )
343345 test := make ([]int , len (unsorted ))
344346
345347 for i := 0 ; i < b .N ; i ++ {
@@ -349,3 +351,16 @@ func BenchmarkOddEvenSort(b *testing.B) {
349351 b .StopTimer ()
350352 }
351353}
354+
355+ func BenchmarkOddEvenMergeSort (b * testing.B ) {
356+ b .StopTimer ()
357+ unsorted := sliceBuilder (lengthforbench )
358+ test := make ([]int , len (unsorted ))
359+
360+ for i := 0 ; i < b .N ; i ++ {
361+ copy (test , unsorted )
362+ b .StartTimer ()
363+ sorts .OddEvenMergeSort (test )
364+ b .StopTimer ()
365+ }
366+ }
0 commit comments