冒泡排序法的基本思路為:每次將相鄰的兩個數比較,將小的調在前面。即如果有n個數,則要進行n-1趟比較,第一次比較中需要進行n-1次兩兩比較,第二趟需要進行n-2次,第j次需要進行n-j次兩兩比較。N個數字要排序完成,總共進行N-1趟排序,每i趟的排序次數為(N-i)次,所以可以用雙重循環語句,外層控制循環多少趟,內層控制每一趟的循環次數。
c語言冒泡排序代碼如下:
#include <stdio.h> #define ARR_LEN 255 /*數組長度上限*/ #define elemType int /*元素類型*/ /* 冒泡排序 */ /* 1. 從當前元素起,向后依次比較每一對相鄰元素,若逆序則交換 */ /* 2. 對所有元素均重復以上步驟,直至最后一個元素 */ /* elemType arr[]: 排序目標數組; int len: 元素個數 */ void bubbleSort (elemType arr[], int len) { elemType temp; int i, j; for (i=0; i<len-1; i++) /* 外循環為排序趟數,len個數進行len-1趟 */ for (j=0; j<len-1-i; j++) { /* 內循環為每趟比較的次數,第i趟比較len-i次 */ if (arr[j] > arr[j+1]) { /* 相鄰元素比較,若逆序則交換(升序為左大于右,降序反之) */ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } int main (void) { elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4}; int len = 10; int i; bubbleSort (arr, len); for (i=0; i<len; i++) printf ("%d\t", arr[i]); putchar ('\n'); return 0; }
回答所涉及的環境:聯想天逸510S、Windows 10。
冒泡排序法的基本思路為:每次將相鄰的兩個數比較,將小的調在前面。即如果有n個數,則要進行n-1趟比較,第一次比較中需要進行n-1次兩兩比較,第二趟需要進行n-2次,第j次需要進行n-j次兩兩比較。N個數字要排序完成,總共進行N-1趟排序,每i趟的排序次數為(N-i)次,所以可以用雙重循環語句,外層控制循環多少趟,內層控制每一趟的循環次數。
c語言冒泡排序代碼如下:
回答所涉及的環境:聯想天逸510S、Windows 10。