冒泡排序是数组中的入门排序算法。算法思路如下:
(从小到大排序)存在10个不同大小的气泡,由底至上地把较少的气泡逐步地向上升,这样经过遍历一次后,最小的气泡就会被上升到顶(下标为0),然后再从底至上地这样升,循环直至十个气泡大小有序。
在冒泡排序中,最重要的思想是两两比较,将两者较少的升上去
程序如下:
#include <stdio.h>
void swap(int *a, int *b);
int main()
{
int array[10] = { 15, 225, 34, 42, 52, 6, 7856, 865, 954, 10 };
int i, j;
for (i = 0; i < 10; i++)
{
//每一次由底至上地上升
for (j = 9; j > i; j--)
{
if (array[j] < array[j - 1])
{
swap(&array[j], &array[j - 1]);
}
}
}
for (i = 9; i >=0; i--)
{
printf("%d\n", array[i]);
}
return 0;
}
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void swap(int *a, int *b);
int main()
{
int array[10] = { 15, 225, 34, 42, 52, 6, 7856, 865, 954, 10 };
int i, j;
for (i = 0; i < 10; i++)
{
//每一次由底至上地上升
for (j = 9; j > i; j--)
{
if (array[j] < array[j - 1])
{
swap(&array[j], &array[j - 1]);
}
}
}
for (i = 9; i >=0; i--)
{
printf("%d\n", array[i]);
}
return 0;
}
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
运行结果:
7856
954
865
225
52
42
34
15
10
6
请按任意键继续. . .
954
865
225
52
42
34
15
10
6
请按任意键继续. . .