编程重点部分专接本考试常见的排序算法之一 冒泡排序算法
程序填空题 程序编程题都可能遇到
相邻的两个数互相交换
t=a[j];
a[j]=a[j+1]
a[j+1]=t
注意循环部分
数组个数为n个
n个数循环n-1次
第j轮要进行** n-i-1**次对比
//降序冒泡排序
#include
void main()
{
int a[10];
int i,j,t;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
//开始排序
for(i=0;i<10-1;i++)
{
for(j=0;j<10-1-i;j++)
{
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
冒泡优化算法
如果是相同的冒泡会一直排序 所以优化排序减少重复冗余
#include
void main()
{
int a[10];
int i,j,t,flag;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10-1;i++){
flag = 0;
for(j=0;j<10-i-1;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
flag=1;
}
}
if(!flag){
break;
}
}
for(i=0;i<10;i++){
printf("%d",a[i]);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)