冒泡排序:
步骤:
1:比较相邻的元素,如果第一个比第二个大,就交换他们
2:对每一对相邻元素做同样的工作,从开始一对到最后一对。
(这步做完后,最后的元素将会是最大的数。)
3:针对所有元素重复以上步骤,除了最后一个。
4:持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
时间复杂度: O(n*n)
空间复杂度: O(1)
冒泡排序与选择排序的时间复杂度和空间复杂度是一样的。
代码:
#include <stdio.h>
int main(void)
{
int a[6]={2,5,3,1,6,4};
int i,j;
for(i=0;i<6;i++)
{
for(j=0;j<6-i;j++)
{
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("The sort array is:\n");
for(i=0;i<6;i++)
{
printf("%d ",a[i]);
}
return 0;
}
感觉上一篇选择排序太过啰嗦,解释多了看的时候倒是没那么大耐心了,
这都属于较简单的内容,就不过多解释了。
代码的具体实现都是上述步骤。静下心来读几遍。
在一网课上看到的读代码的步骤:(百试不厌)
第一步:看懂流程控制
第二步:看懂每个语句的功能
第三步:试数