算法经典题型9
分治法实现快速排序。
用到的思想—分治法
博主用到的环境:Win7, CodeBlocks等。
一、代码
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int a[101];
int Quicksort(int left, int right)
{
int i,j,t,temp;
if(left>right)
{
return 0;
}
temp=a[left];
i=left;
j=right;
while(i!=j)
{
while(a[j]<=temp&&i<j)
{
j--;
}
while(a[i]>=temp&&i<j)
{
i++;
}
if(i<j)
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
a[left] = a[i];
a[i] = temp;
Quicksort(left,i-1);
Quicksort(i+1,right);
return 0;
}
int main()
{
int i,n;
cout<<"Please put the numbers size:";
cin>>n;
cout<<"Please put the numbers:"<<endl;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
Quicksort(1,n);
cout<<"Print the numbers:"<<endl;
for(i=1;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<a[n];
return 0;
}
二、测试
总结
谢谢宝宝们的阅读,有问题的话评论@我,没问题的话点个赞再走哦~