冒泡排序就是把小的元素往前調或者把大的元素往後調
C語言:
#include <stdio.h>
#define SIZE 8
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{
int i, j, temp;
//先排好後邊的
for(j = 0; j < n - 1; j++)
{
for(i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
}
}
int main()
{
int number[SIZE] = {93, 34, 45, 11, 89, 22, 33, 99};
int i;
bubble_sort(number, SIZE);
for(i = 0; i < SIZE; i++)
{
printf("%d ", number[i]);
}
printf("\n");
}
C++:
#include <iostream>
using namespace std;
template<typename T>
//整數或浮點數皆可使用,若要使用物件時必須設定大於的運算子功能
void bubble_sort(T arr[], int len)
{
int i, j;
T temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
int main()
{
int arr[] = { 61, 17, 29, 22, 34, 60, 72, 21, 50, 1, 62 };
int len = (int) sizeof(arr) / sizeof(*arr);
bubble_sort(arr, len);
for (int i = 0; i < len; i++)
cout << arr[i] << ' ';
cout << endl;
float arrf[] = { 17.5, 19.1, 0.6, 1.9, 10.5, 12.4, 3.8, 19.7, 1.5, 25.4, 28.6, 4.4, 23.8, 5.4 };
len = (int) sizeof(arrf) / sizeof(*arrf);
bubble_sort(arrf, len);
for (int i = 0; i < len; i++)
cout << arrf[i] << ' '; return 0;
}