轉載請註明:http://blog.csdn.net/u011046042/article/details/75200358
-
基本思想
通過對相鄰元素的比較和交換,使全部記錄排列有序。
-
冒泡排序的過程
對每兩個相鄰的元素進行比較,若爲逆序,則將兩者交換,這樣的操作反覆進行,直至全部記錄都比較、交換完畢爲止。如此經過一趟冒泡排序之後,就將關鍵字最大(或最小)的元素安排在最後一個(或第一個) 元素的位置上。然後,對後n-1個元素重複進行同樣的操作,則將具有次大(或次小)元素安排在倒數(或正數)第二個元素的位置上。重複以上過程,直至沒有元素需要交換時爲止。至此,整個序列的記錄按關鍵字由小到大的順序排列完畢。 -
排序的步驟
第一步:令位置1和位置2的元素比較,若位置1的元素大,則交換
第二步:令位置2和位置3的元素比較,若位置2的元素大,則交換
第三步:令位置3和位置4的元素比較,若位置3的元素大,則交換
… -
外循環和內循環
原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小的順序進行交換,這樣一趟過去後,最大或最小的數字被交換到了最後一位,然後再從頭開始進行兩兩比較交換,直到倒數第二位時結束 -
具體的C語言代碼實現如下:
#include <stdio.h>
#define SIZE 11
int count =0;
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] =