1、时间复杂度
最优情况时间复杂度:o(n);
最差/平均时间复杂度:o(n^2);
2、算法特点
大量的比较,大量的不必要的交换操作,导致处理速度较慢;
3、算法步骤
(1)相邻两个元素进行比较,不满足正序(升序),交换两个元素,直到最后一对元素,此时序列尾元素对应着最大值;
(2)除最后一个元素外,将其他元素重复上述步骤(1);
(3)终止条件:重复上述次数达到n次时。
4、冒泡排序算法实现代码
/***************************************************************************
* @file main.c
* @author HAOJIEFENGLANG
* @date 6 August 2018
* @remark 6 August 2017
* @theme Bubble sort
/***************************************************************************
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[]={9,8,7,0,1,2,4,6};
int length=sizeof(a)/sizeof(int);
Bubblesort(a,length);
for(int i=0;i<length;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
void Bubblesort(int a[],int n)
{
int temp=0;
for(int i=0;i<n-1;i++)
{
for(int j=n-1;j>i;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
}