冒泡排序算法
1.冒泡排序的算法原理數組
a) 從第一隊兩個相鄰的元素開始,比較相鄰的元素,若是第一個比第二個大,就將第一個與第二個交換;而後比較第二個和第三,以此類推.....ide
b) 對數組內的每一對相鄰元素進行對比,直到結尾的最後一對,到此比較完之後最後一個元素應該是數組內最大的元素spa
c) 針對以上的全部元素進行如上2步,除了最後一個元素排序
d) 而後持續對愈來愈少的元素重複上面的步驟,直到整個排序的完成。it
2.實現代碼io
#include<stdio.h> int bubble_sort(int a[],int n) { int i,j,temp; for(i=0;i<n;i++){//每一輪都把那一輪中最大的元素放在每一輪的最後一個位置 for(j=0;j<n-i;j++){ //對每對相鄰的元素進行比較、排序 if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } return 0; } int main() { int i; int a[6]={2,1,4,3,6,5}; bubble_sort(a,6); for(i=0;i<6;i++){ printf("%d ",a[i]); }
3.平均時間複雜度:O(N^2)class