冒泡排序
-
首先,我们定义了一个名为
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;}