排序步骤(从小到大):
比较相邻的两个数,如果第一个比第二个大,则交换两个数字,每一轮比较都会将较大的数字排到后面。
图示(图源菜鸟教程):
C语言实现:
# include<stdio.h>
int main(void)
{
int arr[10]={5,4,7,9,2,3,1,6,10,8}; //定义一个位排序的数组
int i; //定义循环次数
int n = 0; //定义排序次数
int length=10; //定义数组长度
while(n < length) //控制比较次数
{
for(i = 0 ; i < length-1-n ; i++)
{
int tmp = 0; //交换顺序时临时存放数字
if(arr[i] > arr[i+1]) //比较两个数字时,如果前一个数字大于后一个数字则交换位置
{
tmp = arr[i]; //交换两个数字的顺序
arr[i] = arr[i+1];
arr[i+1] = tmp;
}
}
n++; //控制比较次数
}
for(i = 0 ; i < length ; i++) //打印排序后的数组
{
printf("%d ",arr[i]);
}
return 0;
}
输出:
排序后:1 2 3 4 5 6 7 8 9 10