BubbleSort.c
/*
* 冒泡排序:对相邻的元素进行比较,如果左边的元素大于右边的元素,则交换这两个元素.
* 算法复杂度:与选择排序相同,等于O(n^2).
*
*/
#include <stdio.h>
static void print_arr(int arr[], int arr_size)
{
int i;
if(NULL == arr || arr_size <= 0)
return;
for(i = 0; i < arr_size; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main()
{
int i, j, temp_value, arr_size;
int arr[] = {4, 3, 7, 6, 5, 0, 9, 1};
arr_size = sizeof(arr)/sizeof(arr[0]);
printf("Before sort: ");
print_arr(arr, arr_size);
/* Bubble Sort */
for(i = arr_size-1; i > 0; i--) {
for(j = 0; j < i; j++) {
if(arr[j] > arr[j+1]) {
temp_value = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp_value;
}
}
}
printf(" After sort: ");
print_arr(arr, arr_size);
return 0;
}