冒泡排序:数组中的元素与该元素的下一个元素做对比,如果该元素大那么两个元素调换位置。由于在最复杂的情况下,即数组全部逆序排列时所需的次数为length-1次,所以冒泡排序的时间复杂度为:
最小时间复杂度 | 最大时间复杂度 | 平均时间复杂度 | 空间复杂度 | |
冒泡排序 | O(n) | O( | O( | O(1) |
动图解析:
C语言实现:
#include<cstdio>
#include<cstdlib>
int main() {
int a[10] = {1,0,4,5,3,2,6,7,9,8};
int l = sizeof(a) / sizeof(a[0] - 1);
int e,b;
/*
for (int i = 0; i < l; i++) {
printf("请输入数组元素:");
scanf_s("%d", &e);
a[i] = e;
}*/
printf("该数组为:");
for (int i = 0; i < l; i++) {
printf("%d,", a[i]);
}
for (int i = 0; i < l - 1; i++) {
for (int j = 1; j < l; j++) {
if (a[j - 1] > a[j]) {
b = a[j];
a[j] = a[j - 1];
a[j - 1] = b;
}
}
}
printf("\n");
printf("排序后的数组为:");
for (int i = 0; i < l; i++) {
printf("%d,", a[i]);
}
}
算法爱好者协会群:940100543,加入学习讨论。
所使用编译器为:Visual Studio2019 链接:https://pan.baidu.com/s/1eg8CNrqrP1jn7GRzHfYXxA
提取码:1234
推荐新手使用dev cpp 链接:https://pan.baidu.com/s /1XZp_8lVE7X6tMLmvXRbYhw
提取码:1234