赞
踩
快速排序法:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序(此过程可以用到函数递归的方法)。
#include <iostream> #include <time.h>//引入头文件 using namespace std; void srandData(int *, int );//用随机数初始化数组的函数 void sort(int *, int ,int );//快速排序法实现函数 void display(int *, int );//在屏幕上输出函数 int main() { const int N = 10; int arr[N]; srandData(arr, N); sort(arr, 0, N - 1); display(arr, N); return 0; } void srandData(int *a, int n) { srand(time(NULL)); for (int i = 0; i < n; i++) { a[i] = rand() % 50;//取50以下的数字 cout << a[i] << " "; } cout << endl; } void sort(int *a, int start, int end) { if(start >= end) { return ; } int i = start; int j = end; int key = a[i];//设置基准位 while(i < j) { while(i < j && a[j] >= key) { j--; } a[i] = a[j]; while(i < j && a[i] <= key) { i++; } a[j] = a[i]; } a[i] = key; sort(a, start, i - 1);//此处用到函数递归的方法 sort(a, i + 1, end); } void display(int *a, int n) { for(int i = 0; i < n; i++) { cout << a[i] << " "; } cout << endl; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。