冒泡排序重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
冒泡排序顾名思义就像泡泡一样,从下往上相邻两个元素之间进行两两比较再排序。
#include<stdio.h>
#include <stdlib.h>
int print(int data[] ,int n)
{
for(int i=0;i<n;i++)
printf("%d ",data[i]);
printf("\n");
}
int bubbleSort( int data[] ,int n )
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
{
for (i = 0; i < n - 1 - j; i++)
if (data[i] > data[i + 1])
{
temp = data[i];
data[i] = data[i + 1];
data[i + 1] = temp;
}
print(data,n);//输出每一次排序后的结果
}
}
//输出数组元素
int main()
{
int i=10,a[10]={4,8,6,5,1,0,2,9,3,7};//数组初始化
bubbleSort(a,10);
}