算法練習---冒泡排序(C語言版)

轉載請註明: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] =
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章