zoukankan      html  css  js  c++  java
  • 排序法系列-冒泡排序法

    冒泡排序法是排序法中比较基础的一个,貌似接触过的第一个排序法就是他咯,相对比起来,这个东西把,代码是最简单的也是最好理解的(相对其他来说),也比较形象,真就像冒泡一样,最大的数先往上冒,之后是第二大的,以此类推。

    举例

    【1】【2】【3】 【4】  【5】  【6】  【7】  【8】  

       2     4      3      88      90      23      10      18

      (1)从【1】开始比较,【1】和【2】比较如果【1】大于【2】,调换,否则不变。之后比较【2】【3】以此类推,最后最大的值会被调换到最后一位。

       (2)  之后继续重复(1)操作

    相比其他排序算法,其时间复杂度为o(n^2);也差不多是最高的了~~!

    一共需要计算的次数:n*n,就是时间复杂度;

    出代码

    #include <stdio.h>

    void BubbleSort(int *a,int num)

    {

        int tmpNum;

        for (int i=num; i>=0; i--) {

            for (int j=0; j<num; j++) {

                if (a[j]>a[j+1]) {

                    tmpNum = a[j];

                    a[j] = a[j+1];

                    a[j+1] = tmpNum;

                }

            }

        }

    }

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

        // insert code here...

        int a[6] = {26,23,4,5,77,55};

        BubbleSort(a, 6);

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

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

            printf(" ");

        }

        printf("Hello, World! ");

        return 0;

    }

  • 相关阅读:
    【链表】Remove Duplicates from Sorted List II(三指针)
    【链表】Reorder List
    【链表】 Reverse Linked List II
    【链表】Rotate List(三个指针)
    【链表】Sort List(归并排序)
    【链表】Swap Nodes in Pairs(三指针)
    数组中常用算法(方法)总结
    使用 gitee 托管你的 go 模块
    git库移植
    git 访问方式浅谈
  • 原文地址:https://www.cnblogs.com/fanxinguu/p/4745212.html
Copyright © 2011-2022 走看看