排序演算法小結

2021-09-10 17:36:33 字數 842 閱讀 3585

十分常用的高效率的演算法,其思想是:先選乙個標尺,用它把整個佇列過一遍篩選,以保證其左邊的元素都不大於它,其右邊的元素都不小於它

function quicksort($arr)

// 定義兩個空陣列,用於存放和基準元素的比較後的結果

$left = ;

$right = ;

// 遍歷陣列

for($i=1; $i < $length; $i++)

$left = $arr[$i];

}}// 然後遞迴分別處理left和right

$left = quicksort($left);

$right = quicksort($right);

// 合併

return array_merge($left,[$base],$right);

思路:法如其名,就像冒泡一樣,每次從陣列中冒出乙個最大的數。

比如:2,4,1

第一次冒出4:2,1,4

第二次冒出2:1,2,4

function bubblesort($arr)}}

return $arr;

}

思路:每次選擇乙個相應的元素,然後將其放到指定的位置

function selectsort($arr)

}// 通過內部for迴圈找到了當前最小值的key,並儲存在$p中

// 判斷 日光當前$p 中的鍵和假設的最小值的鍵不一致增將其互換

if($p != $i)

}// 返回最終結果

return $arr;

}

排序演算法小結

1 快速排序 quicksort 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說,它是歸併排序的就地版本。快速排序可以由下面四步組成。1 如果不多於1個資料,直接返回。2 一般選擇序列最左邊的值作為支點資料。3 將序列分成2部分,一部分都大於支點資料,另外一部分都小於支點資料。4...

排序演算法小結

1 歸併排序 3.區別與聯絡 遞迴是從未知推到已知,相當於把未知的東西壓入棧,等到可以算出結果了,就一步一步出棧。迭代是從已知到未知,從已知的東西一步一步推至目標。遞迴與迭代就好像一對逆元。遞迴的 更加清晰,但開銷更大,也更容易出錯,除錯較困難 而迭代的 編寫更困難,但速度和開銷較小。4.空間占用 ...

排序演算法小結

演算法過程 假設乙個無序的序列,該演算法將其分成兩部分,前一部分已經完成排序 有序,一開始時只有乙個元素 後一部分任然無序,將後面序列選擇第乙個插入到前面的有序序列,如此直到所有完全有序。複雜度 最簡單的即為,整個序列原來即有序,按照一種最 省事 的方式,我們僅需比較n 1次即可。最複雜的情況,應該...