冒泡排序
因为热爱,所以拼搏。。 –RuiDer
浅谈冒泡排序
现在请你忘记所有对冒泡排序的模糊概念,带着你的大脑,慢慢领会一下简单的乐趣。
前导必备
冒泡排序无非就是一次又一次找一组数最大值或者最小值。
假如有一列数字2 1 3 0 2,现在需要从小到大排序。
解决方案
-
既然是从小到大排序,那么简单了,最前面的数永远是较小值。比如这组数,第一个数肯定是最小值0,那么0是怎么找到的呢?
-
0怎么放在最前面?只需要把第一个数2和后面的数逐一比较,找到较小值并交换,这样下来是不是就可以找到一组数的最小值。
代码如下:
for(int i=0;i<length-1;i++)
{
for(int j=i+1;j<length;j++)
{
if(a[i]>a[j])
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
这样一来就可以更好的理解了,第一个循环固定位置,将该位置的值与第二个循环中的角标值进行比较,得到较小值并交换。
最后得到从小到大的一列数。