
C语言冒泡排序法
如何更容易理解掌握冒泡排序法,我是一个学c语言没多久的人,对for循环的嵌套不太容易了解谁能给我详细而简单地说说如何学会冒泡排序法...
如何更容易理解掌握冒泡排序法, 我是一个学c语言没多久的人 ,对for循环的嵌套不太容易了解 谁能给我详细而简单地说说如何学会冒泡排序法
展开
22个回答
展开全部
int n,t;
for(int i=0;i<n-1;i++)//n个数,要进行n-1次比较,因为第一个数不用和自身比较.
for(int j=0;j<n-1-i;j++)//因为前面已经循环过i次,所以只用执行n-1-i次比较.具体你可以带入n=5来试一试,这样就清楚了.
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
冒泡排序的思想就是,每次把一个满足条件的排序成功,
比如从小到大。。每次把剩下的最小的排到最前就行了。。这是基本思想
例如:从小到大排序
#define MAX 5
int a[MAX]={3,2,1,5,4};
for(int i=0;i<MAX-1;i++)
{
for(int j=i;j<MAX;j++
{
if(a[i]>a[j])
{
int temp = a[i];
a[i]=a[j];
a[j] = temp;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#define MAX 10 //
#include <stdio.h>
#define N 10
int main (){
int i,j,t,a[N];
printf("please input ten numbers:\n");
for (i=0;i<N;i++)
scanf("%d",&a[i]); //原来只输入了一个数!!!
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
if (a[i]<a[j]) //截图结果是用>号
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
printf("output the sorted numbers:\n");
for (i=0;i<N;i++)
printf(" %d",a[i]);
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int i,j;
int temp ,a[5]={1,8,5,6,12};
for(i=0;i<5;i++) //进行n-1趟
for(j=0;j<5-i;j++)
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
for(i=0;i<5;i++) //遍历输出
printf("%d",a[i]);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询