05 2012 檔案
雞尾酒排序(改進的冒泡排序)
摘要: 雞尾酒排序(改進的冒泡排序),原理是對要排序的數組進行雙向冒泡排序,雙向冒泡排序又稱為雞尾酒排序。
閱讀全文
posted @
2012-05-28 19:58 代碼之美 閱讀(2059) |
評論 (1) 編輯
同時找出最大值和最小值的一種優(yōu)化算法(比較次數至多為3【n/2】)
摘要: 但在很多應用中,需同時找到最大值和最小值,一般情況大家較容易想到用上面的算法獨立的找到最大值和最小值,各用n-1次,共有2n-2次比較。這在大容量數據庫中(n很大),效率不是很高。
在這里,我將給出一種新的算法代碼,以大幅提高其效率(n很大時)。具體做法是:每次成對的處理數據,先將一對元素進行比較,然后把較大者與當前最大值比較,較小者與當前最小者比較,因此每兩個元素需要3次比較。具體實現時需考慮n的奇偶,n為奇數,3【n/2】次;n為偶數,3n/2-2次。因此總的比較次數至多為3【n-2】。(注:【n】表示不大于n的整數)。
閱讀全文
posted @
2012-05-14 12:39 代碼之美 閱讀(6548) |
評論 (2) 編輯
歸并排序MergeSort
摘要: 歸并排序(Merge sort,即合并排序)是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。原理通俗 說就是把原始數組分成若干子數組,對每一個子數組進行排序,之后把子數組與子數組合并,合并后仍然有序,直到全部合并完,形成有序的數組。其時間復雜度為O(n)O(最優(yōu))、(nlog n)(最差)。
閱讀全文
posted @
2012-05-11 13:32 代碼之美 閱讀(1560) |
評論 (0) 編輯
插入排序InsertionSort
摘要: 插入排序就是每一步都將一個待排數據按其大小插入到已經排序的數據中的適當位置,直到全部插入完畢。其時間復雜度為O(n)(最優(yōu))、O(n^2)(最差)、O(n^2)(平均)。這是一個對少量元素進行排序的有效算法。
閱讀全文
posted @
2012-05-10 12:44 代碼之美 閱讀(1645) |
評論 (0) 編輯
冒泡排序BubbleSort
摘要: 冒泡排序是我們接觸的最早的排序算法之一,它有著容易理解的優(yōu)勢,時間復雜度為n-1(最優(yōu))、n(n-1)/2(最差),由于比較簡單,此處只給出我自己編譯通過的C++源代碼,以供參考。
閱讀全文
posted @
2012-05-09 12:13 代碼之美 閱讀(1674) |
評論 (1) 編輯
計數排序CountSort
摘要: 一共需要三個數組,分別是待排數組nData,票箱數組(計數數組)pCount,和桶數組(存儲結果數組)pSort.
閱讀全文
posted @
2012-05-09 10:19 代碼之美 閱讀(509) |
評論 (0) 編輯