1 个不稳定版本
0.1.0 | 2021年12月6日 |
---|
#1879 在 开发工具
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)