随机产生1000个数,分别用冒泡排序和快速排序进行排序

kuaikuai
2024-12-31 02:25:36
推荐回答(2个)
回答1:

#include
#include
#include
using namespace std; //随机数函数头文件
void main()
{
void sort1(int *);//冒泡法函数
void sort2(int *);//快速排序法
int i;
int a[1000];
srand(time(0)); //调用随机数
for(i=0;i<1000;i++)
{

a[i]=1+rand()%1000; //随机数的使用方法
}
int q;
cout<<"1--冒泡法\n"<<"2--快速排序法\n";
cout<<"请选择:";
cin>>q;
cout<<"排序后的结果为:\n";
switch(q)
{
case 1:
sort1(a);
break;
case 2:
sort2(a);
break;
}
}
void sort1(int *a)
{
int i,j,temp,t=1;
for(i=1;i<1000;i++)
for(j=1000-1;j>=i;j--)
if(a[j] {
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
} //冒泡部分
for(i=0;i<1000;i++)
{
cout< t++;
if(t%16==0) //每输出15个数换行
{
cout< t=1;
}
}
}
void sort2(int *a)
{
int i,j,k,t,m=1;
for(i=0;i<1000-1;i++)
{
k=i; //把第一个数的下标赋给k
for(j=i+1;j<1000;j++)//比较出最小的(出了第一个数)
{
if (a[j] k=j; //把比第一个数小的数的下标依此赋给k
t=a[i];a[i]=a[k];a[k]=t;//把最小的数与第一个数交换
}
}
for(i=0;i<1000;i++)
{
cout< m++;
if(t%16==0) //每输出15个数换行
{
cout< m=1;
}
}

}

回答2:

#include
#include
#include //随机数函数头文件
main()
{int i,j,temp;
int a[i];
srand(time(NUll)); //调用随机数
for(i=0;i<1000;i++)
a[i]=1+rand()%1000; //随机数的使用方法
for(i=1;i<=1000-1;i++)
for(j=1000-1;j>=i;j--)
if(a[j] {temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;} //冒泡部分
for(i=0;i<1000;i++)
printf("%d",a[i])
}

至于快速排序方法..好久没有练过这个方法..忘了..