首页 > 技术文章 > 冒泡排序

huigee 2018-10-23 15:01 原文

严格按照定义写的代码:

void bubbleSort(int array[], int length)

{

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

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

            if (array[j-1] > array[j]) {

                swap(array[j-1], array[j]);

            }

        }

    }

}

 

void swap(int &a, int &b) {

    int temp = a;

    a = b;

    b = temp;

}

 

 

网络优化版

void bubbleSort(int array[], int length) {

    bool flag = true;//判断是否发生交换

    while (flag) {

        flag = false;

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

            if (array[j-1] > array[j]) {

                swap(array[j-1], array[j]);

                flag = true;

            }

        }

        length --;

    }

}

推荐阅读