C語言是一門計算機高階語言,被許多IT行業的工作者們熟練地運用著。在C語言中,排序的演算法有好幾種,下來我會舉一個例子:C語言的氣泡排序,以及氣泡排序的一些講解。
工具/原料
電腦
C語言
visual c++ 6.0
方法/步驟
程式碼源程式為:
#include
#include
#define ok 1
int main()
{
int sort(int azz[],int n );
int arr[7];
int i,j;
printf("請輸入幾個整數:\n");//七個以內的數
for(j=0;j<;j++)
scanf("%d",&arr[j]);
sort(arr,7);
printf("請輸出arr[]中的數:");
for(i=0;i<7;i++)
printf("%3d",arr[i]);
printf("\n");
return 0;
}
int sort(int azz[],int n)
{
int t,i,j;
for(i=0;i
for( j=0;j
{
if(azz[j]>azz[j+1])
{
t=azz[j];
azz[j]=azz[j+1];
azz[j+1]=t;
}
}
return ok;
}
此程式含有一維陣列
一般形式:型別符 陣列名[常量表達式];
說明:
陣列名是一個地址常量,不能對陣列進行賦值和運算;
在定義陣列時,陣列的元素個數必須是常量。int n=3; int a[n]; 就是錯誤的形式;
陣列元素的下標必須從0開始。
程式還運用到了“函式呼叫”
一般形式:
函式名(實參表列)
注意:
在主函式中對呼叫函式進行說明,則只能在主函式中呼叫;
在主函式前對呼叫函式進行說明,則能在主函式和其後的其他函式中呼叫;
可以看到,執行了呼叫函式後,你所輸入的無序數字,在輸出後變成了有序的數字。這是由於形引數組azz已用氣泡排序對輸入的數字進行了排序,形引數組改變,使得實引數組也隨之改變了。
氣泡排序
氣泡排序(Bubble Sort),是一種電腦科學領域的較簡單的排序演算法。氣泡排序演算法的運作如下:比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後一個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
輸入數字時,一定要注意輸入時,應該輸入一個數字就要回車,才能保證輸入的數字個數不超過陣列所要求的長度。