现在的位置: 首页 > 综合 > 正文

快速排序(递归版本)

2014年03月17日 ⁄ 综合 ⁄ 共 717字 ⁄ 字号 评论关闭

快速排序

#include<iostream>
using namespace std;

void swap(int *a,int *b)
{
	int temp=*a;
	*a=*b;
	*b=temp;
}
int partition2(int data[],int low,int high)
{
	int i=low;
	int j=high;
	int privot = data[low];
	while(i<j)
	{
		while(data[j]>=privot && i<j)
		j--;
		swap(&data[i],&data[j]);
		//data[i]=data[j];
		while(data[i]<=privot &&i<j)
		i++;
		swap(&data[i],&data[j]);
		//data[j]=data[i];
	}
		//data[i]=privot;
		return i;
	}
	void quick_sort(int data[],int low,int high)
	{
		if(low<high)
			{ int k=partition2(data,low,high);
			  quick_sort(data,low,k-1);
			  quick_sort(data,k+1,high);
			}
	}
	
int main()
{//int data[]={4,5,2,3,1};
	int data[]={5,4,3,2,1};
	cout<<"排序前:"<<endl;
	int index;
	for(index=0;index<5;index++)
	cout<<data[index];
	cout<<endl;
	quick_sort(data,0,4);
	cout<<"排序后:"<<endl;
	for(index=0;index<5;index++)
	cout<<data[index];
	
	}

抱歉!评论已关闭.