记录自已学习之排序算法(冒泡排序)

来源:互联网 发布:表白二维码生成器软件 编辑:程序博客网 时间:2024/06/07 13:58

冒泡排序可是从我开始学编程时候就最早接触的排序算法,但是由于大一的时候我没有好好地学好C语言,我永远只知道书本上的程序,却不知道C语言是一门大学问。所以那个时候没有好好学,现在要重新出发再次接触冒泡排序。我一直认为冒泡排序就是想泡泡那样从下往上就是越来越大,也就是有小到大。所以程序中我也是这样写的,冒泡排序的原理:设计两个循环,第一个循环就是控制排序的那个数(我感觉不是控制排序的数,而是控制一个值),也就是控制它从第几个值开始作为对比。第二个循环就是控制对比的次数,因为第一个循环正在往后面走,所以第二个循环的次数跟第一个循环有关。其实说白了也就是外循环进行了一次之后,有一个最小(最大)的值已经放到了数组的最后面。(在写这篇博文的时候我明白了冒泡排序原来就是从下往上排的,所以像泡泡,因为它是从最后一个开始完成它的位置,直到最上面的那一个完成,我明白了不关是从小到大,还是从大到小的原因,哈哈,写博文还是有用的)

#include <stdio.h>


#define MAX_ARRAY 8


int main(void)
{
int array[MAX_ARRAY] = {5, 8, 6, 1, 3, 9, 2, 0};
int i, j, temp;
for (i = 0; i < MAX_ARRAY; i++)
{
for (j = 0; j < MAX_ARRAY - 1 - i; j++)
{
if (array[j] < array[j + 1])
{
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}

for (i = 0; i < MAX_ARRAY; i++)
{
printf("array[%d] = %d\n", i + 1, array[i]);
}
return 0;
}



最后还是要提醒一下大家,最好是自已对着程序的思路画一下图来对比一下,这样是很好的理解冒泡排序究竟是这样的进行冒泡的,在写这篇博文的时候我还是不明白为什么叫冒泡排序,正在写这篇博文的时候忽然就懂了,希望大家还是要好好学习,别像我一样。

1 0
原创粉丝点击