本博客只是單純的冒泡算法,沒有對其進行優化;這裏就不敘述思路了,直接開始代碼:
#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;
}
測試成果: