编程实现两个排序算法(选择排序,冒泡排序),要求用函数实现排序算法,主函数中调用。待排序数据用随机数产生(这个过程建议也用一个函数实现。)
#include<iostream>
using namespace std;
#include<time.h>
#include<stdlib.h>
//冒泡排序
void bubblesort(int R[],int N)
{
int i,j,temp;
for(i=1;i<=N;i++)
for(j=1;j<=N-i;j++)
{
if(R[j]>R[j+1])
{
temp=R[j];
R[j]=R[j+1];
R[j+1]=temp;
}
}
cout<<"冒泡排序结果为:"<<endl;
for(i=1;i<=N;i++)
{
cout<<R[i]<<endl;
}
}
void select_sort(int a[], int N) //N是数组a的长度
{
int i, j, min, tmp;
for(i = 1; i<=N; i++) //从头开始比较
{
min = i;
for(j = i+1; j<=N; j++) //把a[min]依次和它后面的数进行比较
{
if(a[j] < a[min])
{
min = j;
}
tmp = a[min];
a[min] = a[i];
a[i] = tmp;
}
}
cout<<"选择排序结果为:"<<endl;
for(i=1;i<=N;i++)
{
cout<<a[i]<<endl;
}
}
int main(){
int i,n,t;
int r[20002];
void bubblesort(int R[],int N);
void select_sort(int a[], int N);
t=time(0)%1000;
srand(t);
cout<<"input n:"<<endl;
cin>>n;
cout<<"参与排序的整数为:"<<n<<endl;
for(i=1;i<=n;i++)
{
r[i]=rand()%(4*n)+10;
cout<<r[i]<<endl;
}
bubblesort(r,n);
select_sort(r,n);
return 0;}