PHP基礎演算法 冒泡 選擇 插入 快速 歸併

2021-10-08 11:42:38 字數 1829 閱讀 9075

$arr = [1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39, 2];

//氣泡排序

function bubblesort($arr) }}

return $arr;

}$arr = bubblesort($arr);

print_r($arr);

$arr = [1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39, 2];

//選擇排序

//實現思路 雙重迴圈完成,外層控制輪數,當前的最小值。內層控制比較次數

function selectsort($arr)

//已經確定了當前的最小值的位置,儲存到$p中。

//如果發現 最小值的位置與當前假設的位置$i不同,則位置互換即可

if ($p != $i)

}//返回最終結果

return $arr;

}$arr = selectsort($arr);

print_r($arr);

$arr = [1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39,2];

//插入排序

function insert_sort($arr)

else }}

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

//返回

return $arr;

}$arr = insert_sort($arr);

print_r($arr);

$arr = [1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39,2];

//快速排序

function quick_sort($arr)

else

}//遞迴呼叫

$left=quick_sort($left);

$right=quick_sort($right);

//將所有的結果合併

return array_merge($left,array($arr[0]),$right);

}$arr = quick_sort($arr);

print_r($arr);

$arr = [1, 43, 54, 62, 21, 66, 32, 78, 36, 76, 39,2];

// 歸併排序主程式

function mergesort($arr)

$mid = intval($len / 2); // 取陣列中間

$left = array_slice($arr, 0, $mid); // 拆分陣列0-mid這部分給左邊left

$right= array_slice($arr, $mid); // 拆分陣列mid-末尾這部分給右邊right

$left = mergesort($left); // 左邊拆分完後開始遞迴合併往上走

$right= mergesort($right); // 右邊拆分完畢開始遞迴往上走

$arr = merge($left, $right); // 合併兩個陣列,繼續遞迴

return $arr;

}// merge函式將指定的兩個有序陣列(arra, arr)合併並且排序

function merge($arra, $arrb)

return array_merge($arrc, $arra, $arrb);

}$arr = mergesort($arr);

print_r($arr);

php 冒泡 選擇 插入 快速排序演算法

1.氣泡排序法 思路分析 法如其名,就是像冒泡一樣,每次從陣列當中 冒乙個最大的數出來。arr array 2,32,51,68,66,100,78,10 function getpao arr return arr 2.選擇排序法 選擇排序法思路 每次選擇乙個相應的元素,然後將其放到指定的位置。f...

PHP 實現插入 選擇 冒泡 快速排序演算法

php實現插入 選擇 冒泡 快速排序演算法 author lucas date 2007.11.14 插入排序 一維陣列 基本思想 每次將乙個待排序的資料元素,插入到前面已經排好序的數列中的適當位置,使數列依然有序 直到待排序資料元素全部插入完為止。示例 初始關鍵字 49 38 65 97 76 1...

PHP實現插入 選擇 冒泡 快速排序演算法

插入排序 一維陣列 基本思想 每次將乙個待排序的資料元素,插入到前面已經排好序的數列中的適當位置,使數列依然有序 直到待排序資料元素全部插入完為止。示例 初始關鍵字 49 38 65 97 76 13 27 49 j 2 38 38 49 65 97 76 13 27 49 j 3 65 38 49...