#排序 #算法 #排序算法

sort_alogorithms_v010

此包实现了多个排序算法

1 个不稳定版本

0.1.0 2021年12月6日

#1879开发工具

MIT 许可证

9KB
179

带可视化器的排序算法

注意:这只是一个算法的简要说明!!!

选择排序

选择排序是一种通过选择来排序的算法

最坏、中等和最好情况的时间复杂度:O(n²)

https://en.wikipedia.org/wiki/Selection_sort

sort::selection_sort::selection_sort(arr: &mut Vec, compare: fn(T,T) -> bool)

快速排序

快速排序是一种使用分治策略的算法

最坏情况时间复杂度:O(n²)

中等情况时间复杂度:O(n)

最好情况时间复杂度:O(n log n)

https://en.wikipedia.org/wiki/Quicksort

sort::quick_sort::quick_sort(arr: &mut Vec, start: usize, end: usize, compare: fn (T, T) -> bool)

堆排序

堆排序是一种使用选择排序策略的通用算法

最坏情况时间复杂度:O(n log n)

中等情况时间复杂度:O(n log n)

最好情况时间复杂度:O(n log n)

https://en.wikipedia.org/wiki/Heapsort

sort::heapsort::heapsort(arr: &mut Vec)

归并排序

归并排序是一种使用比较排序策略和分治策略的算法

最坏情况时间复杂度:O(n log n)

中等情况时间复杂度:O(n log n)

最好情况时间复杂度:O(n)

https://en.wikipedia.org/wiki/Merge_sort

sort::merge_sort::sort(arr: &mut Vec, begin: usize, end: usize, compare: fn(T, T) -> bool)

基数排序

基数排序是一种使用非比较策略的算法

最坏情况时间复杂度:O(n)

中等情况时间复杂度:O(n)

最好情况时间复杂度:O(n)

https://en.wikipedia.org/wiki/Radix_sort

sort::radix_sort::radix_sort(arr: &mut Vec)

无运行时依赖