GitHub - ThirdLetterC/wavesort-c: Wave Sort (W-Sort) algorithm implemented in C and Assembly

1 min read Original article ↗

wsort

W-Sort algorithm implemented in C and Assembly (with OpenMP parallelization).

Paper: https://arxiv.org/abs/2505.13552

Benchmarks

C

Initializing benchmark for 100000000 integer samples...
Data generated. Starting sort...

[OK] WaveSort Verification Passed.
[OK] Qsort    Verification Passed.

--- Results (Lower is Better) ---
WaveSort: 7.786132 seconds
Qsort:    9.737445 seconds

Ratio (Wave/Qsort): 0.80x (WaveSort is faster)

Assembly

Initializing W-Sort Test...
Generating 100000000 random integers...
Running qsort...
qsort time: 9.0394 seconds
Running wave_sort (ASM)...
wave_sort time: 3.8327 seconds
SUCCESS: Array is sorted correctly.

Assembly (serial vs. parallel)

Initializing W-Sort Benchmark...
Cores available: 24
Generating 1000000000 random integers...

Running qsort...
qsort skipped for large array size to save time.
qsort time: 0.0000 seconds

Running Serial ASM wave_sort...
Serial ASM time: 39.2279 seconds

Running Parallel C+ASM wave_sort (OMP)...
Parallel C+ASM time: 7.6819 seconds