冒泡排序效率非常低,效率还不如插入排序。数据量大时效率低,对于顺序颠倒的序列效率最低。
时间复杂度为n^2
#include <stdio.h>
// 标准冒泡
void bubbleSort(int arr[], int size)
{
int pos1 = 0, pos2 = 0; // 分别是外层循环和内层循环的下标
for(pos1 = size-1; pos1 >= 1; --pos1)
{
for(pos2 = 0; pos2 <= pos1-1; ++pos2)
{
if(arr[pos2] > arr[pos1])
{
int temp = arr[pos2];
arr[pos2] = arr[pos1];
arr[pos1] = temp;
}
}
}
}
int main()
{
int arr[7] = {6,-1,-3,5,9,2,1};
bubbleSort(arr, 7);
int pos = 0;
for(pos = 0; pos <= 6; ++pos)
{
printf("%d ", arr[pos]);
}
printf("\n");
return 0;
}