dsa-oxide/src/main.rs
2024-05-28 19:18:33 -04:00

109 lines
3.4 KiB
Rust

mod linear_search;
mod binary_search;
mod merge_sort;
mod heap_sort;
mod radix_sort;
mod bubble_sort;
mod quick_sort;
mod dijkstras;
mod data_structures;
fn linear_search_demo(){
println!("-------------------");
println!("LINEAR SEARCH DEMO:");
println!("-------------------");
let haystack = [1, 3, 4, 69, 71, 81, 90, 99, 420, 1337, 69420];
println!("Array being searched: {:?}",haystack);
let needle = 81;
let search = linear_search::linear_search(&haystack, needle);
match search {
Some((value, index)) => {
if value {
println!("Value {} found at index {}", needle, index);
} else {
println!("Value {} not found", needle);
}
}
None => println!("Error: Unable to perform linear search."),
}
}
fn binary_search_demo(){
println!("-------------------");
println!("BINARY SEARCH DEMO:");
println!("-------------------");
let haystack = [1, 3, 4, 69, 71, 81, 90, 99, 420, 1337, 69420];
println!("Array being searched: {:?}",haystack);
let needle = 69;
let search = binary_search::binary_search(&haystack,needle);
match search {
Some((value, index)) => {
if value {
println!("Value {} found at index {}", needle, index);
} else {
println!("Value {} not found", needle);
}
}
None => println!("Error: Unable to perform linear search."),
}
}
fn bubble_sort_demo(){
println!("-------------------");
println!("BUBBLE SORT DEMO:");
println!("-------------------");
let mut arr = [9, 3, 7, 4, 69, 420, 42];
println!("Array before bubble sort: {:?}",arr);
bubble_sort::bubble_sort(&mut arr);
println!("Array after bubble sort: {:?}",arr);
}
fn quick_sort_demo(){
println!("-------------------");
println!("QUICK SORT DEMO:");
println!("-------------------");
let mut arr = [9, 3, 7, 4, 69, 420, 42];
println!("Array before quick sort: {:?}",arr);
quick_sort::quick_sort(&mut arr);
println!("Array after quick sort: {:?}",arr);
}
fn merge_sort_demo(){
println!("-------------------");
println!("MERGE SORT DEMO:");
println!("-------------------");
let arr = vec![9, 3, 7, 4, 69, 420, 42];
println!("Array before merge sort: {:?}",arr);
println!("Array after merge sort: {:?}",merge_sort::merge_sort(arr));
}
fn radix_sort_demo(){
println!("-------------------");
println!("RADIX SORT DEMO:");
println!("-------------------");
let arr = vec![9, 3, 7, 4, 69, 420, 42];
println!("Array before radix sort: {:?}",arr);
println!("Array after radix sort: {:?}",radix_sort::radix_sort(arr));
}
fn heap_sort_demo(){
println!("-------------------");
println!("HEAP SORT DEMO:");
println!("-------------------");
let mut arr:Vec<u64> = vec![9, 3, 7, 4, 69, 420, 42];
println!("Array before heap sort: {:?}",arr);
heap_sort::heap_sort(&mut arr);
println!("Array after heap sort: {:?}",arr);
}
fn main() {
println!("");
println!("|~~~~~~~~~~~~~~~|");
println!("SEARCHING DEMOS:");
println!("|~~~~~~~~~~~~~~~|");
println!("");
linear_search_demo();
binary_search_demo();
println!("");
println!("|~~~~~~~~~~~~~~~|");
println!("SORTING DEMOS:");
println!("|~~~~~~~~~~~~~~~|");
println!("");
quick_sort_demo();
bubble_sort_demo();
merge_sort_demo();
radix_sort_demo();
heap_sort_demo();
}