#include using namespace std;
#define array_size 8// the array size
int main() ;
cout<
} }}/**
* show the array
* */
void myshow(int a,int length){
for(unsigned int i=0;i執行結果:
演算法如下:
時間及空間複雜度:
「交換序列中相鄰的珊個整數」為基本操作,當a中初始序列為自小到大有序,基本操作的執行次數為0;
當a中初始序列為自大到小有序時,基本操作的執行次數為 (n-1)(n-2)/2次。
對這類演算法的分析,
1》一種方法是計算它的平均值,即考慮它對所有可能的輸入資料集的期望值(平均值),此時相應的時間複雜度為演算法的平均時間複雜度。
2》另一種更可行的方法是也更常用的辦法是討論演算法在最壞情況下的時間複雜度,即分析最壞情況以估算演算法執行時間的乙個上界。上述氣泡排序的最壞情況為a中序列為「逆序」排序,則其時間複雜度為o(n*n)。
ps:除特別說明外,均指最壞情況下的時間複雜度。
空間複雜度:
由於只用了乙個輔助儲存空間,所以空間複雜度為o(1)。
c 實現氣泡排序
氣泡排序 依次比較相鄰的資料,將小資料放在前,大資料放在後 即第一趟先比較第1個和第2個數,大數在後,小數在前,再比較第2個數與第3個數,大數在後,小數在前,以此類推則將最大的數 滾動 到最後乙個位置 第二趟則將次大的數滾動到倒數第二個位置.第n 1 n為無序資料的個數 趟即能完成排序。對氣泡排序演...
氣泡排序 c 實現
冒泡的演算法介紹 以公升序排列為例來說,大的數字不斷向後排,就像煮沸的水中的氣泡一直往上公升一樣。冒泡演算法它是通過不斷比較相鄰兩數的大小來將最大的數字排列到最後的。例如 4 2 3 1 4和1相比,4大就和2交換位置 變成2 4 3 1 j 4和3比較,4大就和3交換位置 變成 2 3 4 1 j...
氣泡排序(C 實現)
氣泡排序過程 首先將第乙個關鍵字和第二個關鍵字進行比較,若為逆序則將兩個記錄交換,然後比較第二個記錄和第三個記錄,依次類推,知道第n 1個記錄和第n個記錄的關鍵字進行比較為止。此過程稱為第一趟起泡排序,其結果為使得關鍵字最大的記錄被安置到最後乙個記錄的位置,然後進行第二趟排序。例如 輸入 49 38...