Finish week 3 assignment
This commit is contained in:
parent
a8975c0864
commit
83b973f577
12
src/main.rs
12
src/main.rs
@ -30,22 +30,20 @@ fn c1a2() {
|
|||||||
println!("course 1 assignment 2: {:?}", inversions);
|
println!("course 1 assignment 2: {:?}", inversions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
fn c1a3() {
|
fn c1a3() {
|
||||||
// let mut vec = read_to_vector("data/course_1_assignment_3.txt").unwrap();
|
let mut vec = read_to_vector("data/course_1_assignment_3.txt").unwrap();
|
||||||
let mut vec = vec![2, 20, 1, 15, 3, 11, 13, 6, 16, 10, 19, 5, 4, 9, 8, 14, 18, 17, 7, 12];
|
|
||||||
let mut comp_acc: usize = 0;
|
let mut comp_acc: usize = 0;
|
||||||
quick_sort(&mut vec, &mut comp_acc);
|
quick_sort(&mut vec, &mut comp_acc);
|
||||||
// println!("{:?}", vec);
|
println!("course 1 assignment 3: {:?}", comp_acc);
|
||||||
println!("{:?}", comp_acc);
|
|
||||||
println!("{:?}", 3/2);
|
|
||||||
/*
|
/*
|
||||||
1: 162085
|
1: 162085
|
||||||
2: 164123
|
2: 164123
|
||||||
3: ?
|
3: 138382
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
//c1a2();
|
c1a2();
|
||||||
c1a3();
|
c1a3();
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
use std::cmp::PartialOrd;
|
use std::cmp::PartialOrd;
|
||||||
|
|
||||||
|
|
||||||
#[allow(dead_code)]
|
fn median_of_three<T: PartialOrd + Copy>( v: &[T]) -> usize {
|
||||||
fn median_of_three<T: PartialOrd + std::fmt::Debug>( v: &[T]) -> usize {
|
|
||||||
if v.len() < 3 {
|
if v.len() < 3 {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -14,12 +13,20 @@ fn median_of_three<T: PartialOrd + std::fmt::Debug>( v: &[T]) -> usize {
|
|||||||
v.len() / 2
|
v.len() / 2
|
||||||
};
|
};
|
||||||
let right = v.len() - 1;
|
let right = v.len() - 1;
|
||||||
|
let mut values = vec![v[left], v[middle], v[right]];
|
||||||
/* TODO: finish here */
|
bubble_sort(&mut values);
|
||||||
return 0;
|
let median = values[1];
|
||||||
|
if median == v[left] {
|
||||||
|
return left;
|
||||||
|
} else if median == v[middle] {
|
||||||
|
return middle;
|
||||||
|
} else if median == v[right]{
|
||||||
|
return right;
|
||||||
|
} else {
|
||||||
|
panic!("Did not find median in values!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(dead_code)]
|
|
||||||
fn bubble_sort<T: PartialOrd>( v: &mut [T]) -> () {
|
fn bubble_sort<T: PartialOrd>( v: &mut [T]) -> () {
|
||||||
let mut unsorted = true;
|
let mut unsorted = true;
|
||||||
if v.len() <= 1 {
|
if v.len() <= 1 {
|
||||||
@ -37,7 +44,7 @@ fn bubble_sort<T: PartialOrd>( v: &mut [T]) -> () {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn quick_sort<T: PartialOrd + std::fmt::Debug>( v: &mut [T], comp_acc: &mut usize) -> () {
|
pub fn quick_sort<T: PartialOrd + Copy>( v: &mut [T], comp_acc: &mut usize) -> () {
|
||||||
if v.len() <= 1 {
|
if v.len() <= 1 {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user