基础初级算法(2)

103 阅读1分钟

冒泡排序

  • 首先,我们定义了一个名为bubbleSort的函数,它接受一个整数向量arr作为参数。这个函数将对向量进行排序。

  • 函数的主体部分是两个嵌套的for循环。外部的for循环用于控制遍历的次数,内部的for循环用于进行每次遍历的比较和可能的交换。

  • 在内部的for循环中,我们比较相邻的两个元素arr[j]arr[j + 1]。如果arr[j]大于arr[j + 1],我们就交换这两个元素的位置。这个过程就是所谓的“冒泡”,因为较大的元素会逐渐向数组的右侧“冒泡”。

  • 在所有遍历完成后,数组就被排序了。

  • main函数中,我们创建了一个待排序的数组,并调用bubbleSort函数对其进行排序。然后,我们遍历并打印排序后的数组,以验证排序的正确性

    void bubbleSort(std::vector& arr) { int n = arr.size(); for (int i = 0;i< n - 1;i++){ for(int j = 0; j< n - i - 1;j++) { if (arr[j] > arr[j + 1]){ int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }}

    int main() { std::vector arr = {64, 34, 25, 12, 22, 11, 90}; bubbleSort(arr); std::cout << "Sorted array: \n"; for (int i = 0; i < arr.size(); i++) { std::cout << arr[i] << " "; } return 0;}