冒泡排序
今天讲讲冒泡排序。冒泡排序是我初学C语言时遇到的第一个排序。
冒泡排序顾名思义…
我们先看看图示
下面为具体数字视图
代码
//冒泡排序(降序)
#include<stdio.h>
int main()
{
int n,t,a[999];
scanf("%d",&n);//确定存入数字个数
for(int i=0;i<n;i++){
scanf("%d",&a[i]);//将数字存入a[i]
}
for(int i=0;i<n-1;i++){//交换
for(int j=0;j<n-1-i;j++){//n-1-i:将换过的省略掉,防止运算过大
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
这里n-1-i
我的理解是换一个去一个,如果数据过大,可以简化运算。