网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎么用C语言实现冒泡排序

本篇内容介绍了“怎么用C语言实现冒泡排序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联公司专注于扎赉诺尔企业网站建设,成都响应式网站建设公司,商城网站定制开发。扎赉诺尔网站建设公司,为扎赉诺尔等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务



原理:

以 6 个数为例: 对 4    56    25   13   8   6 进行冒泡排序(1 与 2、 2 与3  、 3 与4 、4 与 5  、 5 与 6 比较, 即依次比较)


第一轮:

No.1:56   4     25   13    8    6 

No.2:56   25    4    13    8    6

No.3:56   25   13    4     8    6

No.4:56   25    13    8    4    6

No.5:56   25    13    8    6    4 (最小)

通过第一轮可以看出通过 5 次比较可以找出来一个最小的数。


第二轮:

No.1:56   25   13   8   6

No.2:56   25   13   8   6

No.3:56   25   13   8   6

No.4:56   25   13   8   6 (最小)

由此可见,第二轮经过4次比较确定最小的一个数。


..................................

以下就不一 一比较,可以推理的是,每一轮确定一个最小值,那么6个数,需要5轮比较方能确定顺序。若n个数,则需要比较n - 1 轮才能确定数的顺序。

还可以推出,第一轮需要比较 5 次, 第二轮需要比较 4次,那么若有n个数,则第一轮需要比较n - 1次, 第二轮 比较 n - 2次。


重点:若用 i 表示第 i 轮, j 表示每轮比较 j 次,那么循环应该这么设计;

for ( i = 0 ; i < n - 1 ; i ++ )

{

       for(j  = 0 ; j < n - 1 - i ; j ++)

        {

                  ...............;

                  ...............;

                  ...............;

        }

}



下面用一个简单的实际例子说明:

用c编写一个程序,从键盘读取10 个数字,对其用冒泡排序法进行排序;


程序:

/*

2017年10月27日17:31:59

功能:输入10个数,通过冒泡法对其进行排序。

*/

#include

#include

#define NUM 10

int main()

{

    int num = NUM;

    int array[NUM];

    int i, j;

    int temp;

    printf("Please enter %d integer numbers:", num);

    for(i = 0; i < NUM; i ++)

    {

        scanf("%d", &array[i]);

    }

    //sort

    for(i = 0; i < NUM - 1; i ++)

    {

        for(j = 0; j < NUM - 1 - i; j ++)

        {

            if(array[j] < array[j + 1])

            {

                temp = array[j];

                array[j] = array[j + 1];

                array[j + 1] = temp;

            }

        }

    }

    printf("The numbers after being sorted:\n");

    for(i = 0; i < NUM; i ++)

    {

        printf("%d\t", array[i]);

        if( (i + 1) % 5 == 0 )                //每行5个数字

        {

            printf("\n");

        }

    }

    return 0;

}

/*

在Code::Blocks中的输出结果为:

Please enter 10 integer numbers:12 25 65 32 24 59 85 64 49 5

The numbers after being sorted:

85      65      64      59      49

32      25      24      12      5

2017年10月27日17:49:05

心得:冒泡排序的发明者一定智商很高,第一次提出对智力很是挑战。总之,要想明白冒泡排序的算法,必须明白其原理才行。

*/


上面的例子是用一个数组来存放10个数字。用最简单的编程方法去实现了冒泡排序,并没有用指针,以及动态地开辟内存空间去编写这个程序。一是觉得生

涩难懂;二是不一定能编地出来。


“怎么用C语言实现冒泡排序”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


新闻名称:怎么用C语言实现冒泡排序
文章来源:http://bjjierui.cn/article/joeicp.html

其他资讯