c语言实现冒泡排序
#include <stdio.h>
#include <assert.h>
void show(int arr[], int len)
{
assert(arr);
assert(len > 0);
int i = 0;
for (; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void swap(int *a ,int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void bubble_sort(int arr[], int len)
{
assert(arr);
assert(len > 0);
int i = 0;
int flag = 1;
for (i = 0; i < len-1 && flag; i++)
{
int j = 0;
flag = 0;
for (; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
swap(&arr[j], &arr[j + 1]);
flag = 1;
}
}
}
}
int main()
{
int arr[] = {11,22,55,99,88,33,44,66,77};
int len = sizeof(arr) / sizeof(arr[0]);
show(arr, len);
bubble_sort(arr, len);
show(arr, len);
return 0;
}