排序法系列-冒泡排序法

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

举例

【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;

}

原文地址:https://www.cnblogs.com/fanxinguu/p/4745212.html