1.思路:
2.代码实现
#include<stdio.h>
void Swap(int* p1, int* p2)
{
int tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
void BubbleSort(int* a, int n)
{
int i = 0;
int j = 0;
for (j = 0; j < n; j++)
{
int exchange = 0;
for (i = 1; i < n - j; i++)
{
if (a[i - 1]>a[i])
{
Swap(&a[i - 1], &a[i]);
exchange = 1;
}
}
if (exchange == 0)//此时循环一遍后,没有发生交换,即表示排序完成
{
break;
}
}
}
void PrintArray(int* a, int n)
{
for (int i = 0; i < n; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
}
int main()
{
int a[10] = { 2, 7, 6, 3, 1, 0, 9, 4, 5, 8 };
int n = sizeof(a) / sizeof(int);
BubbleSort(a, n);
PrintArray(a, n);
return 0;
}