氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。
它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。
氣泡排序演算法的運作如下:(從後往前)
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
#include
using
namespace
std;
//exchange the 2 items a and b
void swap(int &a, int &b)
//ergodic the buf and print it
void ergodic(int *p,int length)
}void bubblesort(int *p, int length)}}
}int main(int argc, char *args)
; int m = sizeof(buf);
cout
<< "排序前:"
<< endl;
ergodic(buf,sizeof(buf)/sizeof(int));
bubblesort(buf, sizeof(buf) / sizeof(int));
cout
<< "\n\n\n排序後:"
<< endl;
ergodic(buf, sizeof(buf) / sizeof(int));
getchar();
}
執行結果:
氣泡排序的思想就是將第乙個元素與第二個元素比較,如果第乙個元素比第二個元素大,那麼就將兩者交換,並繼續用第二個元素和第三個元素比較,在乙個迴圈結束後,最大的元素會沉到陣列的最右邊,因此,下次迴圈就直接到倒數第二個元素為止,最後的一次迴圈就只剩第乙個元素,至此,所有元素都排列完成。這種排序是按照從小到大排序,;還可以按照從大到小的順序排列,即最大的向左沉,**如下:
void bubblesort(int
*p, int
length)}}
/*for (int i = 0; i < 10; i++)
}}*/
}
執行結果
C 簡單排序演算法之氣泡排序
氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個...
簡單排序 氣泡排序
1.排序演算法的簡要介紹 排序是非常重要的的並且是非常耗時的,所以它已經成為乙個電腦科學中廣泛研究的課題,而且人們已經研究出了一些非常成熟的演算法。目前最簡單的排序演算法包括 氣泡排序 選擇排序和插入排序。每乙個演算法都由乙個例項說明。更加複雜的排序演算法包括 希爾排序和快速排序。儘管簡單排序演算法...
排序演算法之簡單排序
進入找工作倒計時狀態了,計畫好好複習一下資料結構和相關演算法,估計用兩天時間把見過的排序演算法整理下,首先看一下時間複雜度為o n2 的演算法。首先參考大話資料結構定義乙個鍊錶類 include define maxsize 1000 using namespace std class sqlist...