您的位置:首页 > 产品设计 > UI/UE

快速排序 QuickSort

2012-09-29 17:51 417 查看
#include<iostream>
using namespace std;

void QuickSort(int a[],int first,int last)
{
if(first==last)
return;
int i=first,j=last;
int tmp;
tmp=(a[first]+a[last])/2;
while(i!=j)
{
while((i<j)&&(a[i]<tmp))
i++;
if(i<j)
{
swap(a[i],a[j]);
j--;
}
}

if((a[i]>=tmp)&&(i>=first))
{
QuickSort(a,first,i-1);
QuickSort(a,i,last);
}
else if((a[i]>=tmp)&&(i<=last))
{
QuickSort(a,first,i);
QuickSort(a,i+1,last);
}
}

void main()
{
int a[8]={25,-5,288,-139,45,196};
int first=0,last=7;

QuickSort(a,first,last);

for(int i=0;i<8;i++)
cout<<a[i]<<" ";
}


这个快速排序,是把首位和末位的数据求平均加以比较,其中采用从左向右的顺序实现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: