“美丽的泡沫 虽然一刹花火,你所有承诺 虽然都太脆弱,但爱像泡沫 如果能够看破,有什么难过。”
邓紫棋-泡沫【我是歌手】
在《泡沫》之中,邓紫棋将自己对于爱情的认知,通过旋律和歌词,淡淡的像我们展示出来。
爱情拥有着泡沫的美丽,却也同时拥有着泡沫的脆弱,多少唯美的爱情因承受不住现实的摧残,最后变成了一生的遗憾。
爱情需要经济基础的加固,经济基础,决定上层建筑,没有物质的爱情,注定是要破灭。但我们每一个人却同时羡慕爱情的美丽,我们只用搞好自己的基础,搞好自己的经济。
搞好经济,对于咱们搞技术的小伙伴而言,努力学习编程方面的知识,才是重中之重。今天,咱们一起探讨一下:冒泡排序。
任何排序方式,目的都是找到一组数字正确的顺序,例如下面一组
我们今天的排序,之所以叫做冒泡排序,它也同时遵守着泡沫的一些规则:大的泡沫在下面,小的泡沫在上面。
冒泡排序的本质:相邻元素进行比较,如果前面的元素数值大于面后的元素数值就交换,否则继续往后移一位。
第一轮:
经过第一轮 77这个最大的数字放在了序列的最后面,我们可以执行下一轮,并且不需要对最后一个数字进行比较。现在的序列为:
第二轮
在进行下一轮,这轮产生的新的数据序列为
第三轮:
在进行下一轮,这轮产生的新的数据序列为
第四轮:
在进行下一轮,这轮产生的新的数据序列为
最后一轮:-4 < 2 不交换 ,结束排序。
冒泡排序的规律:从这个例子中还可以总结出,如果有 n 个数据,那么只需要比较 n–1 轮。而且除了第一轮之外,每轮都不用全部比较。因为经过前面轮次的比较,已经比较过的轮次已经找到该轮次中最大的数并浮到右边了,所以右边的数不用比较也知道是大的。
代码如下:
# include <stdio.h>
int main(void)
{
int a[6] = {900, 2, 3, -58, 34, 76};
int i; //比较的轮数
int j; //每轮比较的次数
int buf; //交换数据时用于存放中间数据
for (i=0; i<5; ++i) //比较n-1轮 n为数组的长度
{
for (j=0; j<5-i; ++j) //每轮比较n-1-i次,
{
if (a[j] > a[j+1])
{
buf = a[j];
a[j] = a[j+1];
a[j+1] = buf;
}
}
}
for (i=0; i<6; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}