算法梗概 详细可以看一下大佬的文章,这里主要说一下LF的对应关系。 F和L作为First和Last,两者的区分十分明显。就算我们不知道两者之间的数据,但是单看F和L,我们一定...
pub fn reverse(text: &str) -> String { // rust的char比较古怪,必定是Unicode,占据四个字节 // 排序的话可以参考之前的数值排序,这里直接使用API即...
pub fn stooge_sort<T: Ord>(arr: &mut [T]) { if arr.len() > 1 { stooge_sort_range(arr, 0, arr.len() - 1); } } fn stooge_sort_range...
pub fn shell_sort<T: Ord + Copy>(values: &mut Vec<T>) { fn insertion_with_gap<T: Ord + Copy>(arr: &mut [T], start: usize, gap: u...
pub fn selection_sort<T: PartialOrd>(arr: &mut [T]) { let len = arr.len(); if len > 1 { for current_index in 0..len - 1 {...
pub fn radix_sort(arr: &mut [u64]) { let max = match arr.iter().max() { Some(&v) => v as usize, None => return }; //...
pub fn quick_sort<T: PartialOrd>(arr: &mut [T]) { let len = arr.len(); if len > 1 { quick_sort_range(arr, 0, len - 1); } } f...
pub fn odd_even_sort<T: Ord>(arr: &mut [T]) { let len = arr.len(); if len < 2 { return ; } let mut sorted = false; wh...
pub fn merge_sort<T>(arr: &mut [T]) where T: PartialOrd + Clone + Default, { let len = arr.len(); if len > 2 { merge_sort_ran...
pub fn heap_sort<T: PartialOrd>(arr: &mut [T]) { let len = arr.len(); // 建堆,从尾到首 for index in (0..len / 2).rev() { heapif...
pub fn gnome_sort<T: PartialOrd>(arr: &mut [T]) { let len = arr.len(); let mut cursor = 1; let mut anchor = cursor + 1; // 走到最后...
pub fn counting_sort(arr: &mut [u32]) { let max = arr.iter().max().unwrap(); // 构建max+1数组,包含0 let mut helper = vec![0; *max as usize +...
pub fn comb_sort<T: Ord>(arr: &mut [T]) { let len = arr.len(); let mut gap = len; let shrink = 1.3; let mut sorted = false; whil...
pub fn cocktail_shaker_sort<T: Ord + std::fmt::Debug>(arr: &mut [T]) { let len = arr.len(); if len < 2 { return ; } let m...
fn bucket_sort(arr: &[usize]) -> std::vec::Vec<usize> { if arr.is_empty() { return vec![]; } let len = arr.len(); let max...
社交账号:
我要举报该,理由是: