#include <stdio.h>
#include <stdlib.h>
#define swap(a,b) {typeof(a) t=a; a=b; b=t;} //定义一个swap用于交换,便于使用
/*
冒泡排序:是一种稳定排序,在排序过程中可以监测到数据是否已经有序(对数据的有序性敏感),
可以立即停止,如果待排序的数据基本有序,则冒泡的效率是非常高的。
*/
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;
}
}
void show_arr(int* arr,size_t len) //显示函数
{
for(int i=0; i<len; i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
int main()
{
int arr[10];
for(int i=0; i<10; i++)
{
arr[i] = rand() % 100;
}
show_arr(arr,10); //显示初始数组
bubble_sort(arr,1000); //进行冒泡排序
show_arr(arr,10); //显示排序后的数组
}
C语言 冒泡排序
最新推荐文章于 2024-09-03 21:34:10 发布