本博客只是单纯的冒泡算法,没有对其进行优化;这里就不叙述思路了,直接开始代码:
#include<stdio.h>
void Swap(int*a, int*b) //交换函数
{
int tmp = 0;
tmp = *a;
*a = *b;
*b = tmp;
}
void BubbleSort(int* arr, int len) //冒泡排序
{
int i;
int j;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
Swap(&arr[j], &arr[j + 1]);
}
}
}
}
测试用例:
int main()
{
int arr[] = { 2, 3, 4, 5, 1, 9, 0, 8, 7, 6 };
//int arr[] = {1,2,3,4,5,6,7,8,9,10};
//int arr[] = {10,9,8,7,6,5,4,3,2,1};
int len = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i <= len - 1; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
BubbleSort(arr, len);
for (int i = 0; i <= len - 1; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
测试成果: