implemented heap sort

This commit is contained in:
specCon18 2024-05-28 19:18:33 -04:00
parent 5b33b2d651
commit 43b45b31fd
2 changed files with 23 additions and 2 deletions

View file

@ -1,3 +1,14 @@
pub fn heap_sort(){ use std::collections::BinaryHeap;
pub fn heap_sort(arr: &mut Vec<u64>) {
let mut heap = BinaryHeap::new();
for i in arr.iter_mut() {
heap.push(*i);
}
for i in 0..arr.len() {
if let Some(val) = heap.pop() {
arr[i] = val;
}
}
arr.reverse()
} }

View file

@ -79,6 +79,15 @@ fn radix_sort_demo(){
println!("Array before radix sort: {:?}",arr); println!("Array before radix sort: {:?}",arr);
println!("Array after radix sort: {:?}",radix_sort::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() { fn main() {
println!(""); println!("");
println!("|~~~~~~~~~~~~~~~|"); println!("|~~~~~~~~~~~~~~~|");
@ -96,4 +105,5 @@ fn main() {
bubble_sort_demo(); bubble_sort_demo();
merge_sort_demo(); merge_sort_demo();
radix_sort_demo(); radix_sort_demo();
heap_sort_demo();
} }