用C语言来实现冒泡排序
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int arr[10] = { 0 };
int i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
int a = 0, b = 0;
for (a = 0; a < 10-1; a++)
{
for (b = 0 ; b < 10-1-a; b++)
{
if (arr[b] > arr[b + 1])
{
int mid = 0;
mid = arr[b + 1];
arr[b + 1] = arr[b];
arr[b] = mid;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
数学逻辑
1.每次都是相邻的两个数进行比较;
2.一共构造两层循环;
3.一般都是从前到后进行比较,所以每次确定的数在最后一个;
4.外层循环(N-1)次;
5.内层循环(N-1-A)次;
时间复杂度
假设有N个数进行排序:
下界:T(N)=n^2