快速排序 解析

快速排序法原理也是用了分治法,主要原理是将数组分为A[p..q-1] 和A[q+1..r],然后调整元素使得A[p..q-1]小于等于q,也小于等于A[q+1..r]。然后不断的递归,到最后就排序完成。

上代码:

// QuickSort.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
using namespace std;

/*函数声明*/
void QuickSort(int *A,int p,int r);	//快速排序
int Partition(int *A,int p,int r);		//分治法
void Display(int *a,int size);			//打印函数

/*主函数*/
int _tmain(int argc, _TCHAR* argv[])
{
	int size,*a;
	while(1)
	{
		cout<<"输入字符串长度:"<>size;
		if(size > 0) {
			cout<<"请输入"<>a[i];
			}
			QuickSort(a,0,size-1); //调用快速排序函数
		}
		else
			cout<<"输入长度错误!"<


下面我们测试一组数组: 2 8 7 1 3 5 6 4

其中第一次分治法调用示意图如下: 

你可能感兴趣的:(算法设计,分治法,排序)