迷人的名字——氣泡排序演算法
阿新 • • 發佈:2018-12-16
氣泡排序的核心是雙層套嵌,所以他的時間複雜度為O(N*N),它是有一個迷人的名字的演算法,不過複雜度較大,所以在使用中應避免。
思想:
每次比較相鄰的元素,如果他倆的大小順序錯誤,就交換他們的位置。
實現:如果有n個數,就需要進行(n-1)次操作,每次操作比較相鄰的兩個數,並調整他們的順序位置
附上C語言程式碼示例:
#include "stdio.h" int main(){ int i, j, t; int a[6] = {1, 2, 9, 15, 116, 234}; int n = 6; printf("init arr£º"); for(i=0; i<n; i++) { printf("%d ", a[i]); } for(i=0; i<n-1; i++) //第一層迴圈 { for(j=0; j<n-i; j++) //注意第二層迴圈為第0個到第(n-i) { if(a[j]<a[j+1]) { t = a[i]; a[i] = a[j]; a[j] = t; } } } printf("\n"); printf("After sorted£º"); for(i=0; i<n; i++) { printf("%d ", a[i]); } return 0; }