<pre name="code" class="objc">//冒泡排序
#include <stdio.h>
#include <stdbool.h>
void print (int *a, int n)
{
int i = 0;
for (i = 0; i < n; i++)
printf ("%d ", a[i]);
printf ("\n");
}
void bubblesort (int *a, int n)
{
int i, j, t;
//排序n个数据,需要扫描n-1次
for (i = 0; i < n - 1; i++)
{
//每次需要扫描的数据个数会减少一个(为总个数减去扫描的次数再减一)
//int flag = 0;
bool flag = true;
for (j = 0; j < n-i-1; j++)
{
if (a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
//flag = 1;
flag = false;
}
}
//if (flag == 0)
if (flag == true)
break;
printf ("第%2d次:", i+1);
print (a, n);
}
}
int main (void)
{
int arr[] = {5,4,7,8,9,0,1,2,6,3};
int = sizeof(arr) / sizeof(*arr); /*计算数组arr的元素个数*/
printf ("排序前:");
print (arr, n);
bubblesort (arr, n);
printf ("排序后:");
print (arr, 10);
return 0;
}
冒泡排序
最新推荐文章于 2023-06-06 09:14:05 发布