关闭

快速排序

306人阅读 评论(0) 收藏 举报
分类:
#include <iostream>
#include <iterator>
using namespace std;

int partion(int a[], int left, int right){
	int key=a[left];
	while(left<right){
		while(left<right && a[right]>key) right--;
		a[left]=a[right];
		while(left<right && a[left]<key) left++;
		a[right]=a[left];
	}
	a[left]=key;
	return left;
}
void quickSort(int a[], int left, int right){
	if(left<right){
		int x=partion(a,left,right);
		quickSort(a,left,x-1);
		quickSort(a,x+1,right);
	}
}

int _tmain(int argc, _TCHAR* argv[])
{
	int a[]={2,1,3,4,8,9,7,5,6};
	int len =sizeof(a)/sizeof(int);
	quickSort(a,0,len-1);
	copy(a,a+len,ostream_iterator<int>(cout,","));
	return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31396次
    • 积分:917
    • 等级:
    • 排名:千里之外
    • 原创:64篇
    • 转载:4篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论