algos/src/main.rs

52 lines
1.2 KiB
Rust
Raw Normal View History

mod merge_sort;
2020-11-20 02:37:42 +01:00
mod quick_sort;
2020-11-28 18:59:14 +01:00
mod min_cut;
2020-11-27 18:14:35 +01:00
mod util;
2020-11-20 02:37:42 +01:00
2020-11-27 21:23:14 +01:00
use crate::util::read_to_graph;
2020-11-27 18:14:35 +01:00
use crate::util::read_to_vector;
2020-11-28 18:59:14 +01:00
use crate::min_cut::min_cut;
2020-11-20 02:37:42 +01:00
use crate::quick_sort::quick_sort;
use crate::merge_sort::merge_sort_inversions;
2020-11-20 02:37:42 +01:00
#[allow(dead_code)]
fn c1a2() {
2020-11-20 02:37:42 +01:00
let vec = read_to_vector("data/course_1_assignment_2.txt").unwrap();
let (_sorted, inversions) = merge_sort_inversions(vec);
println!("course 1 assignment 2: {:?}", inversions);
}
2020-11-20 14:19:59 +01:00
#[allow(dead_code)]
2020-11-20 02:37:42 +01:00
fn c1a3() {
2020-11-20 14:19:59 +01:00
let mut vec = read_to_vector("data/course_1_assignment_3.txt").unwrap();
2020-11-20 02:37:42 +01:00
let mut comp_acc: usize = 0;
quick_sort(&mut vec, &mut comp_acc);
2020-11-20 14:19:59 +01:00
println!("course 1 assignment 3: {:?}", comp_acc);
2020-11-20 02:37:42 +01:00
/*
1: 162085
2: 164123
2020-11-20 14:19:59 +01:00
3: 138382
2020-11-20 02:37:42 +01:00
*/
}
2020-11-28 18:59:14 +01:00
#[allow(dead_code)]
2020-11-27 18:14:35 +01:00
fn c1a4() {
2020-11-27 21:23:14 +01:00
let g = read_to_graph("data/course_1_assignment_4.txt").unwrap();
2020-11-28 18:59:14 +01:00
let mut smalles_min_cut = u32::MAX;
let iterations = g.nodes.len().pow(1);
for _ in 0..iterations {
let new_min_cut = min_cut(g.clone());
if new_min_cut < smalles_min_cut {
smalles_min_cut = new_min_cut;
}
}
/* 17 */
println!("course 1 assignment 4: {:?}", smalles_min_cut);
2020-11-27 18:14:35 +01:00
}
fn main() {
2020-11-27 18:14:35 +01:00
// c1a2();
// c1a3();
c1a4();
}