PHP編程中幾乎很少運(yùn)用到算法,只有到了比較高級的應(yīng)用中才會少量的運(yùn)用到算法,以下的幾道算法題,大家做一個了解和學(xué)習(xí)。
一、冒泡排序
基本思想:
對需要排序的數(shù)組從后往前(逆序)進(jìn)行多遍的掃描,當(dāng)發(fā)現(xiàn)相鄰的兩個數(shù)值的次序與排序要求的規(guī)則不一致時,就將這兩個數(shù)值進(jìn)行交換。這樣比較?。ù螅┑臄?shù)值就將逐漸從后面向前面移動。
//冒泡排序
二、快速排序
基本思想:
在數(shù)組中挑出一個元素(多為第一個)作為標(biāo)尺,掃描一遍數(shù)組將比標(biāo)尺小的元素排在標(biāo)尺之前,將所有比標(biāo)尺大的元素排在標(biāo)尺之后,通過遞歸將各子序列分別劃分為更小的序列直到所有的序列順序一致。
//快速排序
三、二分查找
基本思想:
假設(shè)數(shù)據(jù)是按升序排序的,對于給定值x,從序列的中間位置開始比較,如果當(dāng)前位置值等于x,則查找成功;若x小于當(dāng)前位置值,則在數(shù)列的前半段中查找;若x大于當(dāng)前位置值則在數(shù)列的后半段中繼續(xù)查找,直到找到為止。(數(shù)據(jù)量大的時候使用)
//二分查找
四、順序查找
基本思想:
從數(shù)組的第一個元素開始一個一個向下查找,如果有和目標(biāo)一致的元素,查找成功;如果到最后一個元素仍沒有目標(biāo)元素,則查找失敗。
//順序查找
五、寫一個函數(shù),能夠遍歷一個文件下的所有文件和子文件夾
六、寫一個函數(shù),盡可能高效的從一個標(biāo)準(zhǔn)url中取出文件的擴(kuò)展名
七、實(shí)現(xiàn)中文字符串截取無亂碼的方法
可使用mb_substr,但是需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在并且沒有被注釋掉,否則會出現(xiàn)未定義函 數(shù)的問題。