對於乙個長度為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,雖然很少接觸到演算法方面的東西。但是對於基本的排序演算法還是應該掌握的,它是程式開發的必備工具。這裡介紹氣泡排序,插入排序,選擇排序,快速排序四種基本演算法,分析一下演算法的思路。許多人都說演算法是程式的核心,演算法...