有5個人偷了一堆蘋果,準備在第二天分贓。晚上,有一人遛出來,把所有菜果分成5份,但是多了乙個,順手把這個扔給樹上的猴了,自己先拿1/5藏了。沒想到其他四人也都是這麼想的,都如第乙個人一樣分成5份把多的那乙個扔給了猴,偷走了1/5。第二天,大家分贓,也是分成5份多乙個扔給猴了。最後一人分了乙份。問:共有多少蘋果?
for ($i = 1; ; $i++)}}一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最後只剩下乙隻猴子為止,那只猴子就叫做大王。要求程式設計模擬此過程,輸入m、n, 輸出最後那個大王的編號。}}}}
function king($n, $m漢諾塔(又稱河內塔)問題是印度的乙個古老的傳說。開天闢地的神勃拉瑪在乙個廟裡留下了三根金剛石的棒,第一根上面套著64個圓的金片,最大的乙個在底下,其餘乙個比乙個小,依次疊上去,廟裡的眾僧不倦地把它們乙個個地從這根棒搬到另一根棒上,規定可利用中間的一根棒作為幫助,但每次只能搬乙個,而且大的不能放在小的上面。解答結果請自己執行計算,程式見尾部。面對龐大的數字(移動圓片的次數)18446744073709551615,看來,眾僧們耗盡畢生精力也不可能完成金片的移動。) else
$i++;
}return
current($monkeys);}
$a = king(5, 2);
var_dump($a);
後來,這個傳說就演變為漢諾塔遊戲:
1.有三根桿子a,b,c。a桿上有若干碟子
2.每次移動一塊碟子,小的只能疊在大的上面
3.把所有碟子從a杆全部移到c桿上
經過研究發現,漢諾塔的破解很簡單,就是按照移動規則向乙個方向移動金片:
如3階漢諾塔的移動:a→c,a→b,c→b,a→c,b→a,b→c,a→c
此外,漢諾塔問題也是程式設計中的經典遞迴問題。
function hanoi($n,$x,$y,$z使用php描述氣泡排序和快速排序演算法,物件可以是乙個陣列)else
}hanoi(3,'a','b','c');
//對陣列氣泡排序
function bubble_sort($array
) }
}return
$array
;}
function quick_sort($array使用php描述順序查詢和二分查詢演算法,順序查詢必須考慮效率,物件可以是乙個有序陣列)
$left_arr = quick_sort($left_arr
);
$right_arr = quick_sort($right_arr
);
return
array_merge($left_arr, array($key), $right_arr
);}
//寫乙個二維陣列排序演算法函式,可以呼叫php內建函式,能夠具有通用性使用二分查詢陣列中某個元素
function bin_sch($array, $low, $high, $k
)elseif ($k
< $array[$mid
])else
}return -1;
}
function array_sort($arr, $keys, $order=0)$keysvalue = array
();
foreach($arr
as$key => $val
)
if($order == 0)
else
reset($keysvalue
);
foreach($keysvalue
as$key => $vals
)
$new_array = array
();
foreach($keysort
as$key => $val
)
return
$new_array
;}
PHP基本的排序演算法
一些常見的時間複雜度 小 大 o 1 o log2n o n o nlog2n o n 2 o n 3 o 2 n o n o n n 這四個排序時間複雜度 都是 o n 2 空間複雜度 快速排序 log2n o n 冒泡 選擇 插入 o 1 param arr return mixed 選擇排序 ...
PHP中基本排序演算法
思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即,每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。實現 arr array 1,43,54,62,21,66,32,78,36,76,39 functio...
演算法排序2 基本排序方法1
下一章下面的 基本都是使用comparable 介面,使用這個介面實現了主鍵的抽象,它給出了實現這個介面資料型別的物件的大小順序的定義。但是,不是每次都要使用這個介面,因為陣列元素的主鍵很可能只是每個元素的一小部分 概念 首先找到陣列中最小的元素,其次,將它和陣列的第乙個元素交換位置 如果第乙個元素...