Clover排序算法(三葉草排序算法)
該算法是黎一川(中國人)設計並創建的排序算法。
該算法的最佳時間複雜度是:O(n)
最壞時間複雜度是:O(n^2/2)
空間複雜度:O(2n)
礙於其他原因我並未進行複雜度測試,以上只是理論複雜度。
算法剖析
從大到小排序(也可以舉一反三,寫出從小到大的排序):
該算法的所有動作均取決於一個數字,也就是平均數。
順序處理數據,先取當前處理數字出來和平均數比對,如果比平均數大或者等於平均數則再次判斷是否比最左邊的數字大,或者等於最左邊的數字,如果是的話則將當前處理的數字放到數據的最左邊如果否就從最左邊到最右邊尋找一個比當前處理數大的數字,並且插入到它的後面;如果當前處理數小於平均數,就判斷是否等於或者小於最左邊的數如果成立則把當前處理數放到最右邊,如果不成立則按照剛才提及的方法從左向右尋找可以存放該數的位置,並插入;最後還原平均數,計算當前平均數;便完成了一個處理周期,用上述方法依次處理所有數據。