#sorting #algorithm #sort-algorithms

sort_alogorithms

本包实现了几种排序算法

1 个不稳定版本

0.1.1 2021年12月6日

#1765 in 开发工具

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)

无运行时依赖