C++ 冒泡排序

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 13:07:50

算法

遍历数组,在此查看N+1的元素是不是比N元素大,如果大则交换位置,每次遍历后保证本次遍历最大的元素在最后

#include <iostream>
using namespace std;

void bubble_sort(int* arr, int length) {
    bool tidy;        // 判断数组是否已经有序
    for (int i = 0; i < length; i ++) {
        tidy = true;
        for (int j = 0; j < length; j ++) {
            if (arr[j] > arr[j + 1]) {
                tidy = false;
                swap(arr[j], arr[j + 1]);
            }
        }
        if (tidy) {        // 如果有序则退出遍历
            break;
        }
    }
}

int main() {
    int* arr = new int[10];
    for (int i = 0; i < 10; i ++) {
        arr[i] = 10 - i;
    }
    for (int i = 0; i < 10; i ++) {
        cout << arr[i] << " ";
    }
    cout << "\n";
    bubble_sort(arr, 10);

    for (int i = 0; i < 10; i ++) {
        cout << arr[i] << " ";
    }
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!