快速排序

来源:互联网 发布:linux cat 查看日志 编辑:程序博客网 时间:2024/05/20 14:15
#include <iostream>using namespace std;//拆分为两个子列int Partition(int a[], int left, int right) {int base = a[left];while (left < right) {while (left < right && a[right]>base) //从右往左找出第一个比基准小的数据--right;a[left] = a[right]; //将这个数放到基准的左边while (left < right && a[left]<base) //从左往右找出第一个比基准大的数据++left;a[right] = a[left]; //放到右边}a[left] = base;return left; //返回基准的位置}void  QuickSort(int a[], int left, int right) {int i;if (left < right) {i = Partition(a, left, right);QuickSort(a, left, i-1);QuickSort(a, i+1, right);}}int main(){int num[6] = {23,45,13,2,99,78};cout << "排序前:" << endl;for (int i = 0; i < 6; i++) {cout << num[i] << " ";}cout << endl;QuickSort(num, 0, 5);cout << "排序后:" << endl;for (int i = 0; i < 6; i++) {cout << num[i] << " ";}cout << endl;return 0;}

0 0
原创粉丝点击