c++数据结构快速排序

来源:互联网 发布:windows上类似imovie 编辑:程序博客网 时间:2024/06/01 11:05

    相对于常见的冒泡排序以及其他的排序方法,似乎在ACM或者程序竞赛中容易出现效率跟不上的情况,这时候需要一个高效的排序算法,快速排序;简称快排,他是由分治以及递归来完成的排序算法;


代码如下(仅供参考):


#include <iostream>using namespace std;void quick_sort(int a[], int l, int r){if (l < r){int i = l, j = r, x = a[l];while (i < j){while (i < j&&a[j] >= x)j--;if (i < j)a[i++] = a[j];while (i < j&&a[i] < x)i++;if (i < j)a[j--] = a[i];}a[i] = x;quick_sort(a, l, i - 1);quick_sort(a, i + 1, r);}}int main(){int a[1000];int n;while (cin >> n){for (int i = 0; i < n; i++)cin >> a[i];quick_sort(a, 0, n - 1);for (int i = 0; i < n; i++){if (i != 0) cout << " ";cout << a[i];}cout << endl;}return 0;}


原创粉丝点击