php實現4種排序演算法

2021-09-13 23:17:53 字數 1195 閱讀 2229

對於乙個長度為n的陣列,我們需要排序 n-1 輪,每 i 輪 要比較 n-i 次。對此我們可以用雙重迴圈語句,外層迴圈控制迴圈輪次,內層迴圈控制每輪的比較次數。
$arr = [2,3,1,8,4,5];

$length = count($arr);

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

}}for ($i=0;$i<$length-1;$i++)

}echo "\n";

}print_r($arr);

每一輪比較都可以確定乙個位置,對於n個數,比較n-1輪可以確定n個位置上的數,因為確定了n-1個位置,最後乙個位置也就確定了
for($i=0; $i<$count-1; $i++)

}if($i != $minindex)

}

1、先從數列中取出乙個數作為基準數

2、分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊

3、再對左右區間重複第二步,直到各區間只有乙個數

function quick_sort($arr)

$length = count($arr);

if ($length == 1)

// 將第乙個值設定為基準值

$base = $arr[0];

$left = $right = ;

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

}// 遞迴呼叫

$left = quick_sort($left);

$right = quick_sort($right);

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

}

對於插入排序,我的理解是 兩層迴圈下 逐漸增加排序的數量,不斷的重複比較直到得到最終的排序結果,跟我最初的比較排序思路基本是一致的
function insert_sort($arr)  else }}

//將這個元素 插入到已經排序好的序列內。

//返回

return $arr;

}

php實現4種排序演算法

前提 分別用氣泡排序法,快速排序法,選擇排序法,插入排序法將下面陣列中的值按照從小到大的順序進行排序。arr 1,43,54,62,21,66,32,78,36,76,39 思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。...

四種排序演算法PHP實現類

四種排序演算法的php實現 1 插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。2 選擇排序 selection sort 的基本思想是 每一趟從待排序的記錄中選出關鍵字最小的記錄,順序放...

PHP實現四種基本排序演算法

許多人都說演算法是程式的核心,演算法的好壞決定了程式的質量。作為乙個初級phper,雖然很少接觸到演算法方面的東西。但是對於基本的排序演算法還是應該掌握的,它是程式開發的必備工具。這裡介紹氣泡排序,插入排序,選擇排序,快速排序四種基本演算法,分析一下演算法的思路。許多人都說演算法是程式的核心,演算法...