陣列的排序演算法

2022-07-20 16:51:16 字數 987 閱讀 1477

<?php

* 內部排序:

* 指將需要的資料處理所有資料都載入到內部儲存器中進行排序。包括:交換式排序法、選擇排序、插入排序、快排

* 外部排序:

* 資料量過大:無法全部載入到記憶體中,需要借助外部儲存器進行排序:合併排序、直接合併排序

* 氣泡排序演算法 通過對陣列元素從後往前的移動,把最大往後移動 最小往前移動 進行位置上的交換

* 如果每次資料沒有進行交換 說明排序有序,不需要進行排序 使用key開關來進行排序的控制

$arr1 = array(

34,23,

1,3,

21,66,

78,38,

40,// 氣泡排序的函式 這裡把每乙個演算法封裝成乙個方法 方便以後的呼叫 直接操作原陣列 要把位址傳過去

function bubblesort(&$arr)

// 中間交換介質 容器

$tmp = 0;

// 改迴圈控制外層迴圈 控制次數

for ($i = 0; $i < count($arr); $i ++) else else {

//放入右邊

$right_array = $arr[$i];

//再分別對左邊和右邊的陣列進行相同的排序處理方式遞迴呼叫這個函式

$left_array = quick_sort($left_array);

$right_array = quick_sort($right_array);

//合併

return array_merge($left_array, array($base_num), $right_array);

// 把遍歷的輸出**封裝成乙個方法

function printfarray($arr)

// 陣列的索引 遍歷和輸出

foreach ($arr as $key => $value) {

echo $key . "=" . $val . "

";

陣列的排序演算法

include int main void puts 您輸入的是個數為 for int j 0 j 10 j int item,ipos 從小到大排序演算法 for int m 0 m 9 m a ipos a m 與第m個元素交換數值 a m item puts n從小到大排序後,輸出為 for ...

陣列排序演算法

基本思想 對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素移動陣列前面,較大的元素移動到陣列後面 演算法 冒泡演算法由雙層迴圈實現,其中外層迴圈控制排序輪次,一般為排序的陣列長度減一。而內層迴圈主要用於對比陣列中每個臨近元素的大小,以確定是否交換位置,對比和交換的次數隨排序輪數而減少。演算法...

多維陣列排序的演算法

test data array array id 1,data a array id 3,data c array id 2,data b array id 4,data d array id 6,data f array id 5,data e 按以下陣列順序排列 id arr array 2,1...