每天作死一道題 氣泡排序的優化

2021-08-15 05:02:49 字數 490 閱讀 7769

氣泡排序浪費時間是因為ta將前面已經排列好的序列再次遍歷排序了一遍,即便是最後兩個數字排序,他也會將最後的資料挨個與前面的比較,所以時間複雜度為o【n^2】,雖然這種排序演算法最為容易理解,但是不得不說,效率極為感人。

那麼問題來了,我們可不可以增加乙個判斷,排好隊的資料,我們就不管ta了,讓人家安安心心的在佇列裡面,直接從沒有排好的地方開始呢?

按照這個思路,我們可以增加乙個變數flag,作為判斷資料是否有序的標記。

具體**如下:

# include 

# include

# include //bool的標頭檔案

int main ()}}

for (i=0; iprintf ("%d", a[i]);

if (i==n-1)

break;

printf (" ");

}return

0;}

每天作死一道題 單鏈表的逆轉

6 1 單鏈表逆轉 20 分 本題要求實現乙個函式,將給定的單鏈表逆轉。函式介面定義 list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l...

每天作死一道題 列印英文名

c語言編寫乙個程式,根據使用者輸入英文名和姓先顯示姓氏,其後跟乙個逗號,然後顯示名的首字母。例如 lloyd fosdick 輸出是 fosdick,l.注意 使用者可能在名字前,名字和姓之間,名字後加空格,但輸出結果不要空格!問答上回答的時候順手寫的程式。簡直可以說是淺顯。就是操作黑複雜 incl...

每天作死一道題 求單鏈表的長度

6 3 求鏈式表的表長 10 分 本題要求實現乙個函式,求鏈式表的表長。函式介面定義 int length list l 其中list結構定義如下 typedef struct lnode ptrtolnode struct lnode typedef ptrtolnode list l是給定單鏈表...