快速排序

来源:互联网 发布:打开windows资源管理器 编辑:程序博客网 时间:2024/06/07 00:27
#include <iostream>using namespace std;typedef int T;void sort(T a[], int n){if (n<=1) return;swap(*a, a[n/2]);    //a[n>>1]T* L = a+1;T* R = a+n-1;T V = *a;   //分界值while(L<R){while(*L<V && L<R) L++;while(*R>=V && R>a) R--;if (L<R) swap(*L, *R);}if (V>*R) swap(*a, *R); sort(a, R-a);sort(R+1,n-(R-a)-1);} int main(){T a[5] = {1, 4, 6, 2, 9};sort(a, 5);for (int i=0; i<5; i++)cout << a[i] << ' ';return 0;}