您的位置:首页 > 其它

分治之快速排序

2017-03-29 19:27 162 查看
取数组中首尾两个数作比较,按一定规则交换

#include<iostream>
using namespace std;
void swap(int & a, int & b)
{
int tmp = a;
a = b;
b = tmp;
}
void QuickSort(int a[], int s, int e)
{
if (s > e)
return;
int k = a[s];
int i = s, j = e;
while (i != j) {
while (j > i&&a[j] >= k)
--j;
swap(a[i], a[j]);
while (i < j&&a[i] <= k)
++i;
swap(a[i], a[j]);
}
QuickSort(a, s, i - 1);
QuickSort(a, i + 1, e);
}
int a[] = { 93,27,30,2,8,12,2,8,30,89 };
int main()
{
int size = sizeof(a) / sizeof(int);
QuickSort(a, 0, size - 1);
for (int i = 0; i < size; ++i)
cout << a[i] << ",";
cout << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: