分析
这里借鉴了网上的动图更加的清晰
冒泡排序说实在的就是一种数据与数据之间的比较然后交换。
例如:淘宝上我们可以对价格和销量进行排序。
因为其排序结果和冒泡的过程一样 因此取名为冒泡排序(起码我的认知是这样的)
算法
冒泡排序的原理(以递增序为例)是每次从头开始依次比较相邻的两个元素,如果后面一个元素比前一个要大,说明顺序不对,则将它们交换,本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,说明每个元素都不比它后面的元素大,至此排序完成。
因为冒泡有两种一种上浮一种下沉 这里给大家就演示一种下沉(从大到小)
首先进行的是一轮循环i=0
然后对循环之下j
的循环判断也就是将每一个i和i+1之后的数据一一进行比较如果大于则执行swap也就是交换。如果=<那么执行++继续循环判断下一个知道i的判断条件终止。这样就完成了对无序数据的排序。
代码剖析
int bubble_sort(int *str, int n)
{
int i,j,tmp;
for(i=0; i<n; i++)
{
for(j=i+1; j<n; j++)
{
if(str[i] > str[j])
{
tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
}
}
return 0;
}