基本思想:
在某一轮中,从数组的第一个数(a[0])开始,将其与后面的数比对,若其大于(或小于,取决于是想要从小到大排序还是从大到小排序,本文中默认从小到大排序了)后面的数,则将它们互换。
# include<stdio.h>
void bubble(int x[],int n)
{
int i,temp;
for(i=0;i<n-1;i++)
if(x[i]<x[i+1])
{
temp = x[i];
x[i] = x[i+1];
x[i+1] = temp;
}
}
这一轮过后,我们会发现最大的数被固定在了数组的末尾位置,即最大数的位置确定了。接下来我们只要重复第一步的操作n-1次(因为如果倒数第二个数排完序,最后一个数的位置也就固定了),便完成了冒泡排序。
# include<stdio.h>
void bubble(int x[],int n)
{
int i,j,temp;
for(j=0;j<n-1;j++)
for(i=0;i<n-1;i++)
if(x[i]<x[i+1])
{
temp = x[i];
x[i] = x[i+1];
x[i+1] = temp;
}
}