有些經典的演算法,我們應該做到信手捏來。一看到某個經典的演算法,腦子裡馬上要想到要怎麼解決,最好還要馬上動手把他時間出來,不要怕做重複的工作!這就是我以後我要的!信手捏來。隨時準備著實現演算法!
氣泡排序:每次從起始位置開始(j=0),分別比較arr[j]與arr[j+1],若不是降序,則交換位置。這樣每輪下來,就可以得到本輪中的最小,放在相應的位置。其實這個演算法的關鍵在於迴圈的實現,因為每次都可以得此乙個最小的,那麼下次就不用再對它進行比較了。所以外層迴圈i每次減少1,可以用來控制迴圈的範圍,內層迴圈用來控制每次比較。
因此氣泡排序總的平均時間複雜度為o(n2)。
#include void bubblesort(int arr, intlen);
intmain()
;
int len = sizeof(arr)/sizeof(int
);
inti;
bubblesort(arr,len);
for (i = 0; i < len; i++)
printf("\n
");return0;
}void bubblesort(int arr, int
len)
}if (0 ==flag)
}}2013/6/15 13:47
氣泡排序 bubble sort
氣泡排序是最基本的排序演算法,常被做為內部排序的第乙個排序演算法進行講解。它的原理非常簡單,只是一 個兩層迴圈,每次將最大或最小的放到陣列最後。演算法如下 b為陣列的起始位置,e為陣列的結果位置 int bubble int data,int b,int e return n 這個函式返回兩個整數比...
氣泡排序(Bubble Sort)
無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。並不是它的名稱很好聽,而是說這個演算法的思路最簡單,最容易理解。因此,哪怕大家可能都已經學過氣泡排序了,我們還是從這個演算法開始我們的排序之旅。氣泡排序 bubble sort 一種交換排...
氣泡排序 Bubble Sort
維基百科 氣泡排序 演算法思想 不斷的交換相鄰的兩個反序元素,使最小元素 上浮 或使最大元素 下沉 每一趟 冒泡 都會確定乙個最大的元素或最小的元素,同選擇排序類似,演算法總共只需進行n 1趟。將乙個陣列豎著放,低位址在上面,高位址在下面,所謂 上浮 就是較小的元素不斷向低位址靠近,所謂 下沉 就是...