基本原理(升序):对于给定的N个数据,从第一个数据开始依次对相邻的两个数据进行比较,数据大于后面时,交据位置,进行一轮比较和位置交换后,最大的数将位于第N 位;再对前(N-1)个数据进行比较和位置交换;重复该过程直至比较的数据只剩下最后一个。
复杂度:平均时间复杂度为O(N^2)
代码实现(C语言)
void BubbleSort(int *a, int n)
{
int i , j;
int temp = 0;
for(i=0; i<n; i++)
{
for(j=0; j<n-i-1; j++)
{
if(a[j+1] < a[j])
{
temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
}
int main()
{
int i;
int a[] = {2,5,1,4,6,8,3,9,7};
int n = sizeof(a)/sizeof(a[0]);
BubbleSort(a,n);
for(i=0; i<n; i++)
{
printf("%d ",a[i]);
}
return 0;
}
659

被折叠的 条评论
为什么被折叠?



