冒泡排序(Bubble Sort)是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
利用C语言写的冒泡排序的算法如下:
平均时间复杂度为O(NN),最坏时间复杂度为O(NN),稳定性为稳定;
#include <stdio.h>
#define maxsize 100001//数量太多无法计算,空间不足
typedef long ElementType;
void Bubble_sort (ElementType A[] ,int N)
{
int i,j;
ElementType t;
for(i = N-1;i >= 0; i--)
{
int flag = 0;
for(j = 0;j <i;j++)
{
if(A[j] > A[j+1])
{
t = A[j];
A[j] = A[j+1];
A[j+1] = t;
flag = 1;
}
}
if(flag == 0) break;
}
}
int main (void)
{
int N, i;
ElementType A[maxsize];
scanf("%d",&N);
for(i = 0; i < N; i++)
{
scanf("%d",&A[i]);
}
Bubble_sort (A,N);
for(i = 0; i<N-1 ;i++ )
{
printf("%ld ", A[i]);
}
if(i == N-1)
{
printf("%ld ", A[i]);
}
return 0;
}