发布网友 发布时间:2022-04-23 21:13
共2个回答
热心网友 时间:2023-10-09 20:20
/* 冒泡排序过程分析图01 */
#include "stdio.h"
int main()
{
int a[10];
int i,j,t,k;
printf("input 10 numbers seperated with comma,please!\n");
for(i=0;i<10;i++)
scanf("%d,",&a[i]);//通过键盘给a[]中的每一个赋值
printf("\n");//此处的\n换行是用在全部输完时的
for(j=0;j<9;j++)//一定要注意j<9的原因是:当循环到最后一次是只剩下最后两个数了,就是只需要循环到倒数第二个就行
{
for(i=0;i<=9-j;i++)
{
if(a[i]>a[i+1])//比较前后两项的大小
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;//这三步是用来比较大小,并且将较大的那一个前移
for(k=0;k<10;k++)
printf("%4d",a[k]);//注意%4d的作用是控制间距的
printf("\n");//后三句的作用是用来输出每一次转变后的结果
}
}
}
printf("the sorted numbers:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
return 0;
}
/* 冒泡排序过程分析图02*/
#include "stdio.h"
int main()
{
int s[10];
int i,k;
printf("enter 10 numbers seperated with comma,please!\n");
for(i=0;i<10;i++)
scanf("%d",&s[i]);
printf("\n");
sort(s,i);
printf("the sorted numbers:\n");
for(k=0;k<i;k++)
printf("%d;",s[k]);
printf("\n");
return 0;
}
sort(x,n)
int x[],n;
{
int i,j,m;
for(j=0;j<n-1;j++)
for(i=j+1;i<n;i++)
if(x[i]<x[j])
{swap(&x[i],&x[j]);
for(m=0;m<10;m++)
printf("%4d",x[m]);
printf("\n");}
}
swap(m,n)
int *m,*n;
{
int temp;
temp=*m;
*m=*n;
*n=temp;
}
冒泡排序的应该从程序中可以看的出来。
热心网友 时间:2023-10-09 20:21
请问你想问的是算法怎么写,还是算法理论怎么实现?