快速排序
2015-11-08 11:39
204 查看
template<typename T> void Sort(T arrayT[], int begin, int end) { int low = begin; int high = end; int key = arrayT[low]; while (low < high) { // 从后面找比key小的值 while(arrayT[high] >= key && high > low) --high; if (high <= low) break; arrayT[low] = arrayT[high]; while(arrayT[low] <= key && low < high) ++low; if (high <= low) break; arrayT[high] = arrayT[low]; } arrayT[low] = key; if (low <= high) { if (begin < low - 1) Sort(arrayT, begin, low - 1); if (end > high + 1) Sort(arrayT, high + 1, end); } }
快速排序是稳定的
相关文章推荐
- 在命令行用 sort 进行排序
- 文件遍历排序函数
- C#选择排序法实例分析
- C#插入法排序算法实例分析
- Lua教程(七):数据结构详解
- C#实现Datatable排序的方法
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- SQLSERVER的排序问题结果不是想要的
- Windows Powershell排序和分组管道结果
- C#数据结构揭秘一
- C#通过IComparable实现ListT.sort()排序
- C#选择法排序实例分析
- SQL学习笔记四 聚合函数、排序方法
- C#对list列表进行随机排序的方法
- 一根网线内的8根线哪4根是传输数据的,哪四根是防干扰的
- 数据结构之Treap详解
- C#折半插入排序算法实现方法
- SQL进行排序、分组、统计的10个新技巧分享
- C++实现位图排序实例
- 基于C++实现的各种内部排序算法汇总