1.冒泡排序基本思想
1.比较相邻的元素,如果前一个数的值大于后一个数的值,那么交换他们的位置
2.对每一个相邻的元素做同样的比较,从开始到最后,这步做完,最后一个元素就是当前数组中最大的元素。
比如;第一个和第二个比,如果第一个大,那么交换。交换后,用新的第二个和第三个比.........这个过程就可以确定下来整个序列最大的值,最终把这个最大值放在序列最后一位。
3.当2的步骤执行完毕后(也就是第一轮比较完毕),此时把序列中最大的值排在了最后一位,然后得到了一个新的序列。对这个新的序列再执行2步骤,就可以把次大值排在倒数第二序列,以此类推,可排列为从小到大的一个序列!
2.C语言实现冒泡排序
#include<stdio.h>
void BubbleSort(int arr[],int len)
{
int i,j;
int tem;
for(i=len-1;i>0;i--)
{
for(j=0;j<i;j++)
{
if(arr[j]>arr[j+1])
{
tem = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tem;
}
}
}
}
int main()
{
int i;
int array[20]={1,8,5,4,7,9,5,7,6,2,1,5,4,5,4};
BubbleSort(array,sizeof(array)/sizeof(array[0])-1);
for(i=0;i<(sizeof(array)/sizeof(array[0]));i++)
{
printf("%d",array[i]);
}
return 0;
}