use learned_partition_sort::learned_sort;
use rand::Rng;
fn main() {
let mut data = vec![10, 5, 8, 3, 2, 9, 7, 1, 4, 6];
println!("Before: {:?}", data);
learned_sort(&mut data);
println!("After: {:?}", data);
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);
for i in 0..large_data.len() - 1 {
assert!(large_data[i] <= large_data[i+1]);
}
println!("Verification successful!");
}