冒泡算法大概结构如下:
冒泡法顾名思义就是将一个数从下面浮上来,假设有5个数,21 56 87 6 9,
将第五个元素的值与第四个元素的值相比,如果第五个元素的值小于第四个元素的值,则交换着两个元素的值。
接下来,将第四个元素的值与第三个元素的值进行比较,按照类似的方式,如果发现下面元素的值小于上面元素的值,则交换着两个值。
将第三个元素的值与第二个元素的值比较,做同样的工作。
在这一轮比较结束时,最小值将到达最上面,可以说最小值已经浮到最上面
第二轮,从最底部的元素开始比较,直到第二个元素,因为第一个已经是最小,不需要再进行比较。
其实,就是一个for循环,最外面的循环控制循环的次数,需要有n-1次循环
固定为for(i=n-1;i>0;i--)
里面的循环从最大值开始,次数为n-1-i,
固定为for(j=n-1;j>n-1-i;j--)
循环体就是
if(a[j-1]>a[j])
{temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
直接套用即可
下面是个排序字符的例子
例:将dcaeb 按字母顺序排列