既然学了递归,那就不能浪费,上一篇博文也用到了函数的递归调用,都是排序,这里就再做一边啦。对了,排序的函数名是高大上的,拟声词……
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int num[200];
void bluesort(int,int);//函数原型
void initialize();
int main()
{
initialize();//随机数初始化数组
bluesort(1,200);//函数调用
for(int i=0;i<200;i++)//输出数组
{
cout<<num[i]<<' ';
}
}
void initialize()
{
for(int m=0;m<200;m++)
{
srand(time(0)+m);
num[m]=rand()%500;
}
}
void bluesort( int left,int right)//不要在意这个高大上的函数名
{
if(left<right)
{
int temp;
for(int i=left;i<right;i++)
{
if(num[i-1]>num[i])
{
//如果前面的数比后面的数大,交换他们
temp=num[i-1];
num[i-1]=num[i];
num[i]=temp;
}
}
bluesort(left,right-1);//函数的递归调用
}
}
算法依旧简单,不过递归用起来真心赞,32个赞!