每一次只确定一个数。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第 2 位上的数归位,依次类推下去。如果有 n 个数进行排序,只需将 n-1 个数归位,也就是要进行 n-1 趟操作。
而 “每一趟 ” 都需要从第一位开始进行相邻的两个数的比较,将较大的数放后面,比较完毕之后向后挪一位继续比较下面两个相邻的两个数大小关系,重复此步骤,直到最后一个还没归位的数。
#include<stdio.h>
#include<string.h>
//冒泡排序
void bubble_sort(int a[])//升序
{
for (int i = 0; i < 9; i++)//次数
{
for (int j = 0; j < 9-i; j++)//针对一个元素
{
if (a[j]> a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int main()
{
int a[] = { 5,8,6,2,7,4,3,1,9,10 };
bubble_sort(a);
for (int i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
return 0;
}