冒泡排序法

冒泡排序法是对非排序数列进行排序的有效算法。假设一组数为  7 5 3 2 1 ,原本的数列是从大到小排列,使用冒泡排序法将这组数从小到大排列。

这组数一共有5个数,所以只要进行4大次排列,五个数中有四个数的位置确定了,最后一个数的位置也就确定。下面演示四大次排列。

level0:

1. 5 7 3 2 1     2. 5 3 7 2 1    3. 5 3  2 7  1  4 . 5  3  2 1  7

level 1:

1. 3 5 2 1 7    2. 3 2 5 1 7    3.  3 2 1 5 7

level2:

1.2 3 1 5 7    2. 2  1  3  5  7

level3

1. 1 2 3 5 7

第一层,确定五个数之间最大数,五个数之间形成4个间隔,所以比较四次

第二层,已经确定一个数位置,所以比较四个数之间的最大数,四个数之间形成3个间隔,所以比较3个

依次类推

假设,将一组有N个数的数组num[N]进行排序,能够确定需要比较N-1层,每一层比较N-1-层数次(层数从0开始)

for(i=0;i<N-1;i++)

{

for(j=0;j<N-1-i;j++)

{

  if(num[j+1] >num[j])

{

temp=num[j];

num[j] =num[j+1];

num[j+1] = temp;

}

}

 

}

 

posted @ 2018-05-08 15:55  高山仰止ing  阅读(346)  评论(0编辑  收藏  举报