小演算法集合

2021-10-06 17:09:47 字數 1662 閱讀 2228

乙個隨機數值陣列,請將它排序後,乙個值$num為陣列中兩個數值之和,取出他們的下標

$num =8;

$arr = array(120,2222,3,5,6,7,8,9,10,11,12);

test($num,$arr);

function test($num,$arr)

}}

冒泡演算法

function maopao($arr)}}

return $arr;

}$a = [1,2,3,41,2,31223,1,3212,41,234,1,24,13,21,24,1,512,4324,5];

$cccc = maopao($a);

var_dump($cccc);

猴大王 1、一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,

function king($n, $m) else 

$i++;//$i 迴圈+1,不斷把猴子刪除,或 push到陣列

}return current($monkeys); //猴子數量等於1時輸出猴子標號,得出猴王

}echo king(1116,3);

牛第四年開始生小牛,生的都是母牛,可以生到15年,第二年死亡,請問多少年可以到20頭牛

function niu($y) else if($i == 20) 

}return $num;

}echo niu(20);

二分演算法

function binsearch($x,$a) elseif($a[$middle]<$x) else

}return false;

}$a = [1,2,3,41,2,31223,1,3212,41,234,1,24,13,21,24,1,512,4324,5];

$dd = binsearch(22,$a);

var_dump($dd);

快速排序演算法

function quicksort($arr) 

//選擇第乙個元素作為基準

$base_num = $arr[0];

//遍歷除了標尺外的所有元素,按照大小關係放入兩個陣列內

//初始化兩個陣列

$left_array = array(); //小於基準的

$right_array = array(); //大於基準的

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

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

$left_array = quicksort($left_array);

$right_array = quicksort($right_array);

//合併

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

}$a = [1,2,3,41,2,31223,1,3212,41,234,1,24,13,21,24,1,512,4324,5];

$dd = quicksort($a);

var_dump($dd);

集合小筆記

陣列與集合的區別 1 陣列 1 長度不能改變。2.存放同一型別的資料。集合 1.長度可變。2.存放不同型別的資料。vector add get size 2 內容維護 add 新增乙個集合時,相當於新增了乙個陣列。addall 把乙個集合新增到另乙個集合中,作為集合的元素。remove 接受整型,索...

集合小總結

學完list 和 set 簡單 的說 就是我們在定義乙個自定義型別時 需要複寫 object 中的 public boolean equals object a 此處不能用泛型 arraylist 可以重複同linkedlist 中如果要去重的話。public int hashcode hashse...

集合小例子

解題分析 1.先宣告乙個set集合 2.泛型設為double 3.用math方法來隨機儲存數字 4.集合中的collections方法找最大值和最小值 具體 如下 public static void main string args system.out.println system.out.pr...