本文共 1189 字,大约阅读时间需要 3 分钟。
冒泡排序是一种简单有效的排序算法,它通过反复交换相邻元素的位置来进行排序。以下是实现冒泡排序的步骤和代码解析:
步骤解析:
初始化数组和循环变量:
n
。外层循环:
n-1
次循环,因为最大的元素需要 n-1
次才能被排到最后的位置。i
作为当前排序的边界。内层循环:
n-i-1
次比较和交换。完成排序:
代码实现:
#includeusing namespace std;int main() { int n; while (cin >> n) { int a[10]; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n-1; i++) { bool swap = false; for (int j = 0; j < n - i - 1; j++) { if (a[j] > a[j+1]) { int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; swap = true; } } if (!swap) break; } for (int i = 0; i < n; i++) { cout << a[i] << " "; } cout << endl; } return 0;}
代码解析:
for (int i = 0; i < n-1; i++)
: 进行 n-1
次循环,每次确定一个最大的元素位置。for (int j = 0; j < n - i - 1; j++)
: 在每次外层循环中,比较并交换 j
和 j+1
位置的元素。if (a[j] > a[j+1])
: 当前元素大于后一个元素时,交换它们的位置。bool swap = false;
: 如果在内层循环中没有发生交换,则可以提前终止外层循环。通过上述步骤和代码,冒泡排序能够有效地将数组按从小到大的顺序排序。
转载地址:http://dglq.baihongyu.com/