冒泡排序和快速排序的代碼效率

冒泡排序算法:重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。
快速排序:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
從描述上看,冒泡排序需要重複走訪隊列中的元素,而快速排序只需要走訪一遍,找個基準值,將小於基準值的值放在基準值的左邊,大於基準值的放在基準值的右邊.然後再在剩下的部分裏再找個基準值,把它分爲2部分,小的放左邊,大的放右邊,直至所有的部分都被劃分完.和二分法查找類似.
在某種意義上,快速排序是從整體到部分再到個體的處理,是一段序列按照小大分開後再處理更小段的排序;而冒泡排序則是一個個個體去比較,所以快速排序要比冒泡排序更爲高級,快速排序是冒泡排序的改進
快速排序時間複雜度是O(nlogn),冒泡排序的時間複雜度是O(n^2)
接下來用代碼來比較下它們完成對1000個隨機數排序所需要的時間。
冒泡排序的代碼如下:
在這裏插入圖片描述
運行結果如下:
在這裏插入圖片描述
快速排序的代碼如下:
在這裏插入圖片描述
運行結果如下:
在這裏插入圖片描述
從實驗結果來看,快速排序算法所用時長比冒泡排序少。當數據量越多,差距越明顯.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章