关闭

22,冒泡排序

标签: 冒泡排序算法
148人阅读 评论(0) 收藏 举报
分类:

#include <stdio.h>

/*

  冒泡排序:

     依次比较相邻的两个数,将小数放在前面,大数放在后面。

     即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。

     然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。

     至此第一趟结束,将最大的数放到了最后。

     在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,

     一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。

     如此下去,重复以上过程,直至最终完成排序。

 */


int main(int argc, const char * argv[]) {

    int nums[] = {34,1,20,52,4,4};

    int temp = 0;

    

    int length = sizeof(nums) / sizeof(nums[0]);

    for (int i=1; i<length; i++) {

        for (int j=0; j<length - i; j++) {

            if(nums[j]>nums[j+1]){   //>代表从小到大,而<代表从大到小

                temp = nums[j];

                nums[j] = nums[j+1];

                nums[j+1] = temp;

            }

        }

    }

    

    for (int i=0; i<length; i++) {

        printf("%i ",nums[i]);

    }

    printf("\n");

    return 0;

}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:37834次
    • 积分:2785
    • 等级:
    • 排名:第12930名
    • 原创:252篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条