编程实现排序问题中的两个排序算法(选择排序,冒泡排序),要求用函数实现排序算法,主函数中调用。待排序数据用随机数产生(这个过程建议也用一个函数实现。)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define n 10
void paixu(){
int a[n],i,j;
printf("-------排序算法-------\n");
for(i=0;i<n;i++)
{a[i]=rand()%100+1;
}
printf("排序前:\n");
for(i=0;i<n;i++)
{printf("%d\t",a[i]);
}
printf("\n");
for(i=0;i<=n-1;i++)
{
int min=i;
for(j=i+1;j<=n;j++)
{
if(a[min]>a[j]) min=j;
}
if (min != i)
{ int temp;
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
printf("排序后:\n");
for(i=0;i<n;i++)
{printf("%d\t",a[i]);
}
printf("\n");
}
void maopao(){
int b[n],i,j;
printf("-------冒泡算法-------\n");
for(i=0;i<n;i++)
{b[i]=rand()%100+8;
}
printf("排序前:\n");
for(i=0;i<n;i++)
{printf("%d\t",b[i]);
}
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(b[j+1]>b[j])
{ int temp;
temp=b[j+1];
b[j+1]=b[j];
b[j]=temp;
}
printf("\n");
printf("排序后:\n");
for(i=0;i<n;i++)
{printf("%d\t",b[i]);
}
printf("\n");
}
int main() {
int i;
printf("请选择算法:1.排序算法,2.冒泡排序,3.2种算法\n");
scanf("%d",&i);
switch(i){
case 1: paixu();break;
case 2: maopao();break;
case 3:paixu();maopao();break;
}
return 0;
}