基本思想: 两两比较未排序序列的元素,发现两个元素的次序相反时即进行交换,直到没有反序的元素为止。
bubbleSort.c / C
void bubbleSort(int array[], int length)
{
int i, j;
int temp;
int flag; // 用以检测序列是否已排序
for (i=length-1; i > 0; i--)
{
flag="0";
for (j=0; j < i; j++)
{
if (array[j] > array[j+1]) // 比较相邻的元素
{
flag="1";
temp = array[j]; // 交换 array[j] 和 array[j+1]
array[j] = array[j+1];
array[j+1] = temp;
}
}
if (flag==0) break; // 序列已排序, 跳出循环
}
}
平均复杂度: O(n^2)
另见
文章评论(0条评论)
登录后参与讨论