冒泡排序
冒泡排序算法的原理以下:
- 比較相鄰的元素。若是第一個比第二個大,就交換他們兩個。
- 對每一對相鄰元素作一樣的工做,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
- 針對全部的元素重複以上的步驟,除了最後一個。
- 持續每次對愈來愈少的元素重複上面的步驟,直到沒有任何一對數字須要比較。
代碼
#include <stdio.h>
void BubbleSort(int arr[], int size)
{
if (arr == NULL || size < 2) {
return;
}
int i, j, temp;
for (i = 0; i < size; ++i) {
for (j = 0; j < size - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void PrintArr(int arr[], int size)
{
if (arr == NULL || size < 1) {
return;
}
int i;
for (i = 0; i < size; ++i) {
printf("%d, ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[10] = {6, 1, 5, 4, 2, 3, 7, 8, 10, 9};
PrintArr(arr, 10);
BubbleSort(arr, 10);
PrintArr(arr, 10);
return 0;
}