排序问题中的两个排序算法(选择排序,冒泡排序),要求用函数实现排序算法,主函数中调用。待排序数据用随机数产生(这个过程建议也用一个函数实现。)
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define MAX 50
void choose()
{
int n,i;
n=rand()%50+5;
printf("随机生成%d个数:\n",n);
int s[MAX];
for(i=0;i<n;i++){
s[i]=rand()%100+1;
printf("%d ",s[i]);
}
printf("\n");
int j,t,min;
for(i=0;i<=n-2;i++){
min=i;
for(j=i+1;j<n;j++){
if(s[j]<s[min]){
min=j;
t=s[i];
s[i]=s[min];
s[min]=t;
}
}
}
printf("\n选择排序结果: \n");
for(i=0;i<n;i++)
printf("%d ",s[i]);
printf("\n");
printf("\n");
printf("\n");
}
void maopao()
{
int n,i;
n=rand()%50+5;
printf("随机生成%d个数:\n",n);
int s[MAX];
for(i=0;i<n;i++){
s[i]=rand()%100+1;
printf("%d ",s[i]);
}
printf("\n");
int j,t;
for(i=0;i<=n-2;i++)
for(j=0;j<=n-2-i;j++){
if(s[j+1]<s[j]){
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
printf("\n冒泡排序结果: \n");
for(i=0;i<n;i++)
printf("%d ",s[i]);
printf("\n");
}
void main()
{
printf("--------------------选择排序--------------------\n");
choose();
printf("--------------------冒泡排序--------------------\n");
maopao();
}
结果截图: