1<?php23
//二分查詢
4public
function bin_search($arr,$k,$low = 0,$high = 0)
8$mid = intval(($low + $high) / 2);9//
遞迴查詢
10if($low
<= $high)14
else
if($k > $arr[$mid
])17
else
if($k
< $arr[$mid
])20}21
return -1;22}
23//
順序查詢
24public
function seq_search($arr,$k
) 29}
30return -1;31}
32//
刪除元素
33public
function del_element($arr,$i)38
//彈出最後乙個元素
39array_pop($arr
);40
return
$arr;41
}42//氣泡排序
43public
function bubble_sort($arr = array
())48
foreach ($arr
as$k => $v
) 55}56
}57return
$arr;58
}5960//
快速排序
61public
function quick_sort($arr = array
())66
$mid = $arr[0];
67$left_arr = array
();68
$right_arr = array
();69
//判斷值大於標記位或小於標記位
70for($i = 1 ; $i
< $len ; $i++)else
7677}78
//遞迴陣列
79$left_arr = quick_sort($left_arr
);80
$right_arr = quick_sort($right_arr
);81
return
array_merge($left_arr,array($mid),$right_arr
);82}83
84//
插入排序
85public
function insert_sort($arr)95
}96return
$arr;97
}98//選擇排序
99public
function select_sort($arr
)113
}114
}115
return
$arr
;116
}117
118/*
*119
php堆排序實現原理
120php程式中關於堆的一些概念:
121假設n為當前陣列的key則
122n的父節點為 n>>1 或者 n/2(整除);
123n的左子節點l= n<<1 或 l=n*2,n的右子節點r=(n<<1)+1 或 r=l+1
124*/
125//
$arr=array(1,8,7,2,3,4,6,5,9);
126// /*
127// 陣列$arr的原形態結構如下:
128// 1
129// / \
130// 8 7
131// / \ / \
132// 2 3 4 6
133// / \
134// 5 9
135// */
136// heap_sort($arr);
137// print_r($arr);
138// /*
139// 排序後生成標準的小頂堆結構如下:
140// 1
141// / \
142// 2 3
143// / \ / \
144// 4 5 6 7
145// / \
146// 8 9
147// 既陣列:array(1,2,3,4,5,6,7,8,9)
148// */
149// }
150public
function heap_sort($arr
)else
172}
173array_shift($arr
);174
}175
176//
整理當前節點($n),臨界點$len之後為已排序的元素
177function adjustnode($n,$last,&$arr
)190
}191
192//
交換兩個值
193function swap(&$a,&$b
)194
常見PHP套件整理
對於已經熟悉apache php mysql的安裝配置的開發人員,或者是不想涉及開發而只是想建立php應用程式的人來說,使用apache php mysql安裝套件來配置php的web環境會方便不少,但是選擇合適的套件還是需要的。個人把曾經使用過的,以及比較知名的安裝套件總結如下 wamp 一直在用...
常見排序演算法整理
經常忘記簡單的排序演算法,有時間整理下來,便於隨時翻閱,也為了隨用隨取 插入排序演算法 取第乙個數作為有序佇列,從後面的無序佇列中依次取值,在有序佇列中從後向前比較大小,插入到有序佇列中。void insertsort int unsort,int n unsort j temp 選擇排序演算法 與...
常見演算法整理(二)
1 從300萬字串中找到最熱門的10條 搜尋的輸入資訊是乙個字串,統計300萬輸入資訊中的最熱門的前10條,我們每次輸入的乙個字串為不超過255byte,記憶體使用只有1g。請描述思想,寫出演算法 c語言 空間和時間複雜度。255位元組 300萬 7,5500,0000位元組 755,000k 75...