算法思想:
利用一层循环,进行来回冒泡。对一个乱序数组a[n]实现从小到大排列。
当 i=0 的时候, 什么都不做,只是 i++ ;
当第 i 个数和第 i+1 个数比较,即 a[i-1] 和 a[i] 比较,
a[i-1]<=a[i] , 不需要进行交换的时候, i++;
a[i-1]>a[i] , 需要进行交换的时候,交换两个数,然后 i--;
重复上述操作,直到i=n结束。
举个例子吧:
{6,2,4,1,5,9}=>{1,2,4,5,6,9}
i=0; {6,2,4,1,5,9} i++;
i=1; {2,6,4,1,5,9} i--;
i=0; {2,6,4,1,5,9} i++;
i=1; {2,6,4,1,5,9} i++;
i=2; {2,4,6,1,5,9} i--;
i=1; {2,4,6,1,5,9} i++;
i=2; {2,4,6,1,5,9} i++;
i=3; {2,4,1,6,5,9} i--;
i=2; {2,1,4,6,5,9} i--;
i=1; {1,2,4,6,5,9} i--;
i=0; {1,2,4,6,5,9} i++;
i=1; {1,2,4,6,5,9} i++;
i=2; {1,2,4,6,5,9} i++;
i=3; {1,2,4,6,5,9} i++;
i=4; {1,2,4,5,6,9} i--;
i=3; {1,2,4,5,6,9} i++;
i=4; {1,2,4,5,6,9} i++;
i=5; {1,2,4,5,6,9} i++;
i=6=n;结束
代码如下:
int a[N] = {1,2,5,…};
int i=0;
while(i