Files
lux/benchmarks/quicksort.zig
Brandon Lucas 42fef80a47 feat: add comprehensive benchmark suite with multi-language comparison
Add benchmarks comparing Lux against 7 languages:
- Rust, C, Go (compiled)
- Node.js, Bun (JavaScript JIT)
- Python (interpreted)

Benchmarks:
- Fibonacci (fib 35): recursive function calls
- Prime counting (10k): loops and conditionals
- Sum loop (10M): tight numeric loops
- Ackermann (3,10): deep recursion
- Selection sort (1k): sorting algorithm
- List operations (10k): map/filter/fold with closures

Results show Lux:
- Matches C and Rust performance
- 2-5x faster than Go
- 7-15x faster than Node.js
- 10-285x faster than Python

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-14 16:17:06 -05:00

33 lines
845 B
Zig

// Quicksort benchmark - sorting algorithm
const std = @import("std");
fn quicksort(arr: []i64) void {
if (arr.len <= 1) return;
const pivot = arr[arr.len - 1];
var i: usize = 0;
for (arr[0..arr.len-1]) |*item| {
if (item.* < pivot) {
const temp = arr[i];
arr[i] = item.*;
item.* = temp;
i += 1;
}
}
const temp = arr[i];
arr[i] = arr[arr.len - 1];
arr[arr.len - 1] = temp;
if (i > 0) quicksort(arr[0..i]);
if (i + 1 < arr.len) quicksort(arr[i+1..]);
}
pub fn main() !void {
var nums: [1000]i64 = undefined;
for (&nums, 0..) |*n, i| {
n.* = @mod(@as(i64, @intCast(i)) * 7 + 13, 1000);
}
quicksort(&nums);
const stdout = std.io.getStdOut().writer();
try stdout.print("Sorted {d} elements\n", .{nums.len});
}