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

kuaikuai

#include<iostream>
#include<iomanip>
#include<time.h>
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]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
} //冒泡部分
for(i=0;i<1000;i++)
{
cout<<setw(5)<<a[i];//为了使输入的数据对齐
t++;
if(t%16==0) //每输出15个数换行
{
cout<<endl;
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]<a[k])
k=j; //把比第一个数小的数的下标依此赋给k
t=a[i];a[i]=a[k];a[k]=t;//把最小的数与第一个数交换
}
}
for(i=0;i<1000;i++)
{
cout<<setw(5)<<a[i];//为了使输入的数据对齐
m++;
if(t%16==0) //每输出15个数换行
{
cout<<endl;
m=1;
}
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-24
#include<stdio.h>
#include<stdlib.h>
#include<time.h> //随机数函数头文件
main()
{int i,j,temp;<br/> int a[i];<br/>srand(time(NUll)); //调用随机数<br/> for(i=0;i<1000;i++)<br/> a[i]=1+rand()%1000; //随机数的使用方法<br/> for(i=1;i<=1000-1;i++)<br/> for(j=1000-1;j>=i;j--)<br/> if(a[j]<a[j-1])<br/> {temp=a[j];<br/> a[j]=a[j-1];<br/> a[j-1]=temp;} //冒泡部分
for(i=0;i<1000;i++)
printf("%d",a[i])
}

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