1/alichraghi/zort v0.14
a lot of sorting algorithms written in zig
Zort
Implementation of 11 sorting algorithms in Zig
| Algorithm | Custom Comparison | Zero Allocation | | ------------------- | ----------------- | --------------- | | Quick | ✅ | ✅ | | Insertion | ✅ | ✅ | | Selection | ✅ | ✅ | | Bubble | ✅ | ✅ | | Shell | ✅ | ✅ | | Comb | ✅ | ✅ | | Heap | ✅ | ✅ | | Merge | ✅ | ❌ | | Tim | ✅ | ❌ | | Twin | ✅ | ❌ | | Radix (no negative) | ❌ | ❌ |
Usage
const zort = @import("zort");
fn asc(a: u8, b: u8) bool {
    return a < b;
}
pub fn main() !void {
    var arr = [_]u8{ 9, 1, 4, 12, 3, 4 };
    try zort.quickSort(u8, &arr, asc);
}
Benchmarks
Raspberry Pi 4 with 8GB RAM
gantt
    title Sorting 10 million items
    dateFormat x
    axisFormat %S.%L
    ./zig-out/bin/run_bench std_block_merge : 0,9242
    ./zig-out/bin/run_bench quick : 0,6058
    ./zig-out/bin/run_bench tim : 0,1437
    ./zig-out/bin/run_bench comb : 0,8943
    ./zig-out/bin/run_bench shell : 0,14349
    ./zig-out/bin/run_bench heap : 0,28369
    ./zig-out/bin/run_bench radix : 0,5607
    ./zig-out/bin/run_bench twin : 0,6275
Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
gantt
    title Sorting 10 million items
    dateFormat x
    axisFormat %S.%L
    ./zig-out/bin/run_bench std_block_merge : 0,2017
    ./zig-out/bin/run_bench quick : 0,1312
    ./zig-out/bin/run_bench tim : 0,208
    ./zig-out/bin/run_bench comb : 0,2031
    ./zig-out/bin/run_bench shell : 0,3011
    ./zig-out/bin/run_bench heap : 0,4394
    ./zig-out/bin/run_bench radix : 0,1347
    ./zig-out/bin/run_bench twin : 0,1371
Package Contents
- .gitattributes
 - benchmark/run_bench.zig
 - LICENSE
 - build.zig
 - benchmark.sh
 - zigmod.yml
 - src/insertion.zig
 - src/tim.zig
 - src/radix.zig
 - src/bubble.zig
 - src/merge.zig
 - src/shell.zig
 - src/selection.zig
 - src/main.zig
 - src/test.zig
 - src/heap.zig
 - src/twin.zig
 - src/quick.zig
 - src/comb.zig
 - README.md
 - .gitignore
 
History
| Published On | Tree @ Commit | Size | |
|---|---|---|---|
| v0.36 | Sun, 08 Jan 2023 17:33:17 UTC | Tree | 122.073 KB | 
| v0.35 | Sat, 29 Oct 2022 19:29:33 UTC | Tree | 121.987 KB | 
| v0.34 | Thu, 22 Sep 2022 19:25:40 UTC | Tree | 114.859 KB | 
| v0.33 | Sat, 27 Aug 2022 03:47:22 UTC | Tree | 118.303 KB | 
| v0.32 | Mon, 22 Aug 2022 18:21:47 UTC | Tree | 117.782 KB | 
| v0.31 | Mon, 08 Aug 2022 21:38:40 UTC | Tree | 117.778 KB | 
| v0.30 | Sat, 06 Aug 2022 09:53:24 UTC | Tree | 88.812 KB | 
| v0.29 | Fri, 05 Aug 2022 12:07:15 UTC | Tree | 82.142 KB | 
| v0.28 | Fri, 05 Aug 2022 11:10:58 UTC | Tree | 56.816 KB | 
| v0.27 | Fri, 05 Aug 2022 11:08:02 UTC | Tree | 56.822 KB | 
| v0.26 | Mon, 01 Aug 2022 19:46:11 UTC | Tree | 54.825 KB | 
| v0.25 | Mon, 01 Aug 2022 06:11:13 UTC | Tree | 49.457 KB | 
| v0.24 | Mon, 01 Aug 2022 06:09:33 UTC | Tree | 49.668 KB | 
| v0.23 | Sat, 30 Jul 2022 22:35:53 UTC | Tree | 49.218 KB | 
| v0.22 | Sat, 30 Jul 2022 20:57:59 UTC | Tree | 49.386 KB | 
| v0.21 | Sat, 30 Jul 2022 20:43:16 UTC | Tree | 49.209 KB | 
| v0.20 | Thu, 28 Jul 2022 20:32:09 UTC | Tree | 44.887 KB | 
| v0.19 | Sun, 17 Jul 2022 06:36:58 UTC | Tree | 29.603 KB | 
| v0.18 | Thu, 19 May 2022 15:22:44 UTC | Tree | 27.198 KB | 
| v0.17 | Thu, 19 May 2022 15:17:40 UTC | Tree | 27.758 KB | 
| v0.16 | Thu, 19 May 2022 15:08:25 UTC | Tree | 27.285 KB | 
| v0.15 | Thu, 19 May 2022 14:10:51 UTC | Tree | 27.107 KB | 
| v0.14 | Sat, 07 May 2022 05:36:29 UTC | Tree | 29.861 KB | 
| v0.13 | Wed, 04 May 2022 14:45:20 UTC | Tree | 29.380 KB | 
| v0.12 | Mon, 02 May 2022 10:54:12 UTC | Tree | 61.833 KB | 
| v0.11 | Mon, 02 May 2022 10:49:59 UTC | Tree | 61.833 KB | 
| v0.10 | Sat, 23 Apr 2022 15:57:47 UTC | Tree | 52.633 KB | 
| v0.9 | Sun, 20 Mar 2022 18:47:44 UTC | Tree | 52.641 KB | 
| v0.8 | Sun, 20 Mar 2022 11:38:52 UTC | Tree | 52.973 KB | 
| v0.7 | Fri, 18 Mar 2022 16:32:02 UTC | Tree | 50.603 KB | 
| v0.6 | Fri, 18 Mar 2022 16:31:29 UTC | Tree | 50.733 KB | 
| v0.5 | Fri, 18 Mar 2022 16:27:12 UTC | Tree | 50.733 KB | 
| v0.4 | Fri, 18 Mar 2022 16:24:57 UTC | Tree | 50.765 KB | 
| v0.3 | Fri, 18 Mar 2022 16:21:29 UTC | Tree | 50.672 KB | 
| v0.2 | Thu, 17 Mar 2022 11:35:28 UTC | Tree | 19.215 KB | 
| v0.1 | Wed, 16 Mar 2022 16:50:48 UTC | Tree | 19.215 KB |