zoukankan      html  css  js  c++  java
  • 冒泡排序和简单选择排序

    #define LENGTH 10

     /*冒泡排序算法的运作如下:

         比较相邻的元素。如果第一个比第二个大,就交换他们两个。

         对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

         针对所有的元素重复以上的步骤,除了最后一个。

         持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。*/

        int i, j, tmp, number[LENGTH] = {95, 45, 15, 78, 84, 51, 24, 12};

        for (i = 0; i < LENGTH; i++) {

            for (j = LENGTH - 1; j > i; j--) {

                if (number[j] < number[j-1]) {//相邻两个数比较,由小到大排序

                    //if (number[j] > number[j-1])  //相邻两个数比较,由大到小排序

                    tmp = number[j-1];

                    number[j-1] =  number[j];

                    number[j] = tmp;

                }

            }

        }

        

        for (i = 0; i < LENGTH; i++) {

            printf("%d ", number[i]);

        }

        printf(" ");

        /*执行次数为:

         (n-1)+(n-2)+(n-3)+……+3+2+1 = (n-1)*n/2 = (n^2 - n)/2

         即时间复杂度为: O(n^2)

    */

    /*选择排序基本思想:

            1、将所有数种最小的数与a[0]交换

            2、将a[1]a[n - 1]中最小的数与a[1]交换

            3....

            没比较一趟找出一个未经排序的数中最小的数,共比较n - 1

         时间复杂度:

         每趟先从s[i]+1~s[n-1]找出最大元素或者最小元素,与s[i]进行比较、交换;

         总的比较次数为: n(n-1)/2,即时间复杂度为: O(n^2)

    */

        int num[LENGTH] = {12,182,17,78,23,69,90,47,45,32};

        int i,j,k,t;

        for (i = 0; i < LENGTH - 1; i++) {//进行LENGTH - 1趟的比较

            k = i;

            for (j = i + 1; j < LENGTH; j++) {//找出没有排序中最小的数

                if (num[j] < num[k]) {//从小到大

                  //if (num[j] > num[k]) 从大到小

                    k = j;

                }

            }

            //将没有排序的最小的数放到最前面

            t = num[k];

            num[k] = num[i];

            num[i] = t;

        }

  • 相关阅读:
    mac os x 之通过远程主机在nginx上部署web静态页面
    基于jQuery UI的调色板插件推荐colorpicker
    Mac 访问隐藏文件方法! 网上方法在我电脑上都不可用!
    JavaScript设计模式学习之单例模式
    由一篇博文做出的代码,不用Math.round()如何实现其功能
    mac os x之解决npm安装包失败,或者nodejs工程缺少依赖
    用nginx的反向代理机制解决前端跨域问题
    mac之os x系统下搭建nodejs+express4.x+mongodb+gruntjs整套前端工程
    sourcetree window10 闪退
    滚动条自定义样式
  • 原文地址:https://www.cnblogs.com/chenhaosuibi/p/3439303.html
Copyright © 2011-2022 走看看