SCAN WORKS
This commit is contained in:
26
src/main.rs
26
src/main.rs
@@ -74,17 +74,27 @@ fn scan(mut head: i32, disk_end: i32, mut requests: Vec<i32>, direction: &mut Di
|
|||||||
split_index = split_vec(head, &mut requests);
|
split_index = split_vec(head, &mut requests);
|
||||||
dbg!(&split_index, &requests);
|
dbg!(&split_index, &requests);
|
||||||
match split_index {
|
match split_index {
|
||||||
Some(foo) => cycle(&requests, foo)
|
Some(foo) => {
|
||||||
.map(|request| {
|
let mut seek: i32 = 0;
|
||||||
let seek = request.abs_diff(head) as i32;
|
let mut right_side = requests.split_off(foo);
|
||||||
head = *request;
|
right_side.push(0);
|
||||||
seek
|
dbg!(&right_side);
|
||||||
})
|
seek = fcfs(head, seek, right_side.clone());
|
||||||
.sum(),
|
requests.sort();
|
||||||
|
dbg!(&requests);
|
||||||
|
seek = fcfs(0, seek, requests);
|
||||||
|
seek
|
||||||
|
}
|
||||||
None => requests
|
None => requests
|
||||||
.iter()
|
.iter()
|
||||||
.map(|request| {
|
.map(|request| {
|
||||||
let seek = request.abs_diff(head) as i32; //TODO turn to function params
|
let seek: i32;
|
||||||
|
if *request < head {
|
||||||
|
seek = head + *request as i32; //TODO turn to function params
|
||||||
|
} else {
|
||||||
|
seek = request.abs_diff(head) as i32; //TODO turn to function params
|
||||||
|
}
|
||||||
|
|
||||||
head = *request;
|
head = *request;
|
||||||
seek
|
seek
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user