冒泡排序是一种稳定排序,在排序过程中可以监测到数据是否已经交换,就是说冒泡排序对数据的有序性很敏感,一旦数据有序可以立即停止排序,所以待排序的数据基本有序,则冒泡排序的效率是非常高的
先定义一个宏函数,负责交换数据
冒泡排序 最好时间复杂度 O(n) 最坏时间复杂度O(n^2) 平均时间复杂度O(n^2)
#define swap(a,b) {typeof(a) t=a; a=b; b=t;}
void bubble_sort(int* arr,size_t len)
{
for(int i=len-1; i>0; i--)
{
bool flag = true;
for(int j=0; j<i; j++)
{
if(arr[j] > arr[j+1])
{
swap(arr[j],arr[j+1]);
flag = false;
}
}
if(flag) break;
}
}
int main()
{
int arr[10];
for(int i=0; i<10; i++)
{
arr[i] = rand() % 100;
}
bubble_sort(arr,1000);
insert_sort(arr,10);
}