冒泡排序
题目描述
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢”浮”到数列的顶端。
输入格式
输入共 2 行,第一行是一个整数 n,表示数组的长度。第二行包含 n 个整数,表示待排序的数组。
输出格式
输出共 1 行,包含 n 个整数,表示排序后的数组(升序排列)。
数据范围
1 ≤ n ≤ 1000
-1000 ≤ 数组元素 ≤ 1000
输入样例:
1 | 5 |
输出样例:
1 | 1 2 3 4 5 |
注意事项
- 冒泡排序的时间复杂度为 O(n²),空间复杂度为 O(1)。
- 冒泡排序是稳定的排序算法。
代码实现
1 |
|
时间复杂度
- 时间复杂度:O(n²),其中 n 为数组的长度。
- 空间复杂度:O(1)。
代码解释
- 我们使用两层循环来实现冒泡排序。外层循环控制排序的轮数,内层循环控制每轮比较的次数。
- 在每一轮中,我们比较相邻的两个元素,如果它们的顺序错误(前面的元素大于后面的元素),就交换它们的位置。
- 每轮结束后,最大的元素会被”冒泡”到数组的末尾。
- 重复上述过程,直到整个数组排序完成。