#include <iostream>
using namespace std;
void bubble_sort(int *a, int len)
{
int i;
int low = 0;
int high = len - 1;
while (low < high)
{
for (i = low; i < high; ++i)//大泡沉底
{
if (a[i] > a[i + 1])//解释为什么high = len - 1;
{
int tmp = a[i];
a[i] = a[i + 1];
a[i + 1] = tmp;
}
}
--high;
for (i = high; i>low; --i)//小泡上浮
{
if (a[i] < a[i - 1])
{
int tmp = a[i - 1];
a[i - 1] = a[i];
a[i] = tmp;
}
}
++low;
}
}
int main()
{
int data[] = {25, 45, 36, 25, 58, 12, 37, 62};
int i;
int length = sizeof(data) / sizeof(data[0]);
bubble_sort(data, length);
for (i = 0; i < length; i++)
{
printf("%d ", data[i]);
}
printf("\n");
return 0;
冒泡排序之一次冒两个泡
最新推荐文章于 2021-05-20 14:41:56 发布