冒泡排序
// 交换2数
void xxx_swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
// 冒泡排序:在0~j区间内,将最大值存放在arr[j]上,j取值从N-1递减至1
// 冒泡排序每次交换的2个数都是相邻的。选择排序可能跨位置交换
void xxx_bubble(int arr[], int N)
{
if (arr == NULL || N < 2)
{
return;
}
for (int j = N - 1; j > 0; --j)
{
for (int i = 0; i < j; ++i)
{
if (arr[i] > arr[i + 1])
{
xxx_swap(arr[i], arr[j]);
}
}
}
}
void test()
{
int arr[] = { 3,4,2,5,6,8,1,-5,10,50 };
int N = sizeof(arr) / sizeof(arr[0]);
xxx_bubble(arr, N);
for (int i = 0; i < N; ++i)
{
cout << arr[i] << ",";
}
cout << endl;
}