冒泡排序法
冒泡排序法是对非排序数列进行排序的有效算法。假设一组数为 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;
}
}
}