排序步驟(從小到大):
比較相鄰的兩個數,如果第一個比第二個大,則交換兩個數字,每一輪比較都會將較大的數字排到后面。
圖示(圖源菜鳥教程):
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