冒泡排序就是把小的元素往前调或者把大的元素往后调
冒泡排序算法的运作如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数,针对所有的元素重复以上的步骤,除了最后一个。
也就是把数组中最小的那个往上冒,冒的过程就是和他相邻的元素交换。这个冒的过程就是内循环。
经过了一个冒的过程,可以使一个最小的元素冒出来,如果数组里面有 n 个元素,就得冒 n-1 次,这就是外循环。
#include<stdio.h>
#include<stdlib.h>
void bubble_sort(int src[],int size)
{
int i = 0;
int tmp = 0;
int j = 0;
for (j = 0; j < size-1; j++)
{
for (i = 0; i < size; i++)
{
if (src[i] > src[i + 1])
{
tmp = src[i];
src[i] = src[i + 1];
src[i + 1] = tmp;
}
}
}
}
int main()
{
int arr[6] = {8,3,4,2,6,5};
int len = sizeof arr / sizeof arr[0];
int i = 0;
bubble_sort(arr,len-1);
for (i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
system("pause");
return 0;
}