C++ 快速排序实现
2016-04-07 14:08
369 查看
C++函数实现如下:
完整代码如下(包含main函数,头文件,测试数组):
void quick_sort(vector<int> &data, int low, int high) { if (low >= high) { return; } int left = low, right = high; int key = data[low]; while (left < right) { while (left < right && key <= data[right]) { right--; } data[left] = data[right]; while (left < right && key >= data[left]) { left++; } data[right] = data[left]; } data[left] = key; quick_sort(data, low, left - 1); quick_sort(data, left + 1, high); }
完整代码如下(包含main函数,头文件,测试数组):
#include <iostream>
#include <vector>
using namespace std;
void quick_sort(vector<int> &data, int low, int high) { if (low >= high) { return; } int left = low, right = high; int key = data[low]; while (left < right) { while (left < right && key <= data[right]) { right--; } data[left] = data[right]; while (left < right && key >= data[left]) { left++; } data[right] = data[left]; } data[left] = key; quick_sort(data, low, left - 1); quick_sort(data, left + 1, high); }
void output_array(vector<int> &data) {
for(auto i : data) {
cout << i << " ";
}
cout << endl;
}
int main() {
int _data[] = {2, 4, 6, 0, 9, 8};
vector<int> data(_data, _data + 6);
quick_sort(data, 0, (int)data.size() - 1);
output_array(data);
return 0;
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 在命令行用 sort 进行排序
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- 文件遍历排序函数
- C#选择排序法实例分析
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- C#实现Datatable排序的方法
- Lua教程(二):C++和Lua相互传递数据示例
- 超大数据量存储常用数据库分表分库算法总结
- SQLSERVER的排序问题结果不是想要的
- Windows Powershell排序和分组管道结果
- C#数据结构与算法揭秘二