快速排序

来源:互联网 发布:java什么是进程和线程 编辑:程序博客网 时间:2024/06/18 07:17

2015.11.30 面试创云传奇

#include <iostream>#include <cstdlib>#include <vector>using namespace std;#define random(x) (rand()%x)void quick_sort(vector<int>& vec, int left, int right){if(left < right){int pivot = vec[left];int low = left;int high = right;while(low < high){while(low < high && vec[high] >= pivot)high--;vec[low] = vec[high];while(low < high && vec[low] <= pivot)low++;vec[high] = vec[low];}vec[low] = pivot;quick_sort(vec, left, low-1);quick_sort(vec, low+1, right);}}void print_num(vector<int>& vec){int len = vec.size();for(int i = 0; i < len; i++)cout << vec[i] << ' ';cout << endl;}int main(){vector<int> vec;for(int i = 0; i < 10; i++){int num = random(10);vec.push_back(num);}print_num(vec);int len = vec.size();quick_sort(vec, 0, len-1);print_num(vec);return 0;}


0 0
原创粉丝点击