pub fn gnome_sort<T: PartialOrd>(arr: &mut [T]) { | |
let len = arr.len(); | |
let mut cursor = 1; | |
let mut anchor = cursor + 1; | |
// 走到最后一个排序完成 | |
while cursor < len { | |
// 检测到无序,向后检查 | |
if arr[cursor - 1] > arr[cursor] { | |
arr.swap(cursor - 1, cursor); | |
cursor -= 1; | |
if cursor == 0 { | |
cursor = 1; | |
} | |
} else { | |
// 有序以后跳转到锚点继续检查 | |
// 如果自然有序,锚点前进一步 | |
cursor = anchor; | |
anchor += 1; | |
} | |
} | |
} |
rust-algorithms:7-地精排序
Rust
371
0
0
2022-11-10
登录后可点赞和收藏
登录后可点赞和收藏