learned-partition-sort 0.1.0

A high-performance distribution-based sorting algorithm that learns data patterns to achieve O(N) complexity
Documentation
use learned_partition_sort::learned_sort;
use rand::Rng;

fn main() {
    // 1. Basic usage
    let mut data = vec![10, 5, 8, 3, 2, 9, 7, 1, 4, 6];
    println!("Before: {:?}", data);
    
    learned_sort(&mut data);
    println!("After:  {:?}", data);

    // 2. Sorting a larger dataset
    let mut rng = rand::thread_rng();
    let mut large_data: Vec<i64> = (0..100_000)
        .map(|_| rng.gen_range(0..1_000_000))
        .collect();

    println!("Sorting 100,000 elements...");
    let start = std::time::Instant::now();
    learned_sort(&mut large_data);
    let duration = start.elapsed();
    
    println!("Sorted 100k elements in {:?}", duration);
    
    // Verify sorting
    for i in 0..large_data.len() - 1 {
        assert!(large_data[i] <= large_data[i+1]);
    }
    println!("Verification successful!");
}