- // test.cpp: 定义控制台应用程序的入口点.
- //
- #include "stdafx.h"
- #include<iostream>
- using namespace std;
- void disp(int a[], int n)
- {
- for (int i = 0; i <n; i++)
- cout << a[i];
- cout << endl;
- }
- int partition(int a[], int s, int t) {// 划分算法
- int i = s; int j = t;
- int temp = a[s];
- while (i != j) {
- while (j> i&&a[j]>= temp)
- j--;
- a[i] = a[j];
- while (i < j&&a[i] <= temp)
- i++;
- a[j] = a[i];
- }
- a[i] = temp;
- return i;
- }
- void quickSort(int a[], int s, int t) {// 递归求解子问题
- int i;
- if (s < t) {
- i = partition(a, s, t);
- quickSort(a, s, i - 1);
- quickSort(a, i + 1, t);
- }
- }
- int main()
- {
- int n = 10;
- int a[] = { 2,5,1,7,10,6,9,4,3,8 };
- quickSort(a, 0, n - 1);
- disp(a,n);
- return 0;
- }
来源: http://www.bubuko.com/infodetail-2967889.html