题意整理。
- 键盘随机输入6个整数,保存到数组中。
- 使用冒泡排序对数组中的元素进行排序,输出排序后的元素。
方法一(冒泡排序)
1.解题思路
- 外层循环遍历前len-1个元素,内层循环遍历当前元素后面所有元素。
- 如果后面元素比当前元素小,则交换位置。
动图展示:
2.代码实现
#include <iostream>
using namespace std;
int main() {
int arr[6] = { 0 };
int len = sizeof(arr) / sizeof(int);
for (int i = 0; i < len; i++) {
cin >> arr[i];
}
//外层循环遍历前len-1个元素
for(int i=0;i<len-1;i++){
//内层循环遍历当前元素后面所有元素
for(int j=i+1;j<len;j++){
//如果后面元素比当前元素小,则交换位置
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for (int i = 0; i < len; i++) {
cout<<arr[i]<<" ";
}
return 0;
}
3.复杂度分析
- 时间复杂度:循环最多执行n∗(n−1)/2次,所以时间复杂度为O(n2)。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)。