Реализации алгоритмов/Сортировка/Быстрая: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 1287:
}
}
 
fn quicksort1(s_arr:&mut [tupe])
{
let (first, last) = (0, s_arr.len()-1);
if first < last
{
let mut left = first;
let mut right = last;
let middle = s_arr[(left + right) / 2];
loop
{
while s_arr[left] < middle {left+=1};
while s_arr[right] > middle {right-=1};
if left < right
{
let tmp = s_arr[left];
s_arr[left] = s_arr[right];
s_arr[right] = tmp;
left+=1;
right-=1;
}
else {break;}
}
right-=1;
left+=1;
quicksort1(&mut s_arr[first..=right]);
quicksort1(&mut s_arr[left..=last]);
}
}
 
fn main()
{
let mut listlistfir = vec![10,29,14,4,35,6];
let mut list = listfir.clone();
println!("{:?}", list);
quicksort(&mut list);
println!("{:?}", list);
let mut list = listfir.clone();
println!("{:?}", list);
quicksort1(&mut list[..]);
println!("{:?}", list);
 
}