php數據結構與演算法
㈠ 最近想學php 如果從頭開始學 都要學什麼
主要下面幾條
1、一門編程語言 如c、c#、perl等php語法相似的
2、對資料庫有一定的了解 並能夠編寫sql語句
3、環境 單獨配置 對初學者來說很麻煩 可以下一個集成的phpstudy
4、工具:文本編輯器就可以 推薦EditPlus 可以幫助初學者記憶代碼 但是用一些IDE也是不錯的 有助於對整體的理解 提高效率
希望我的回答對您有所幫助
㈡ 以後學習編程的問題~
對於廣大編程初學者來說,存在著這樣普遍的認識:學習程序設計選擇編程語言
很重要,開口閉口就是VisualBasic、Visual C++、Delphi、Power Builder等一些現在比較流行的開發工具。經常看見有初學者問:我學C/C++,究竟是學
VisualC++好,還是學Borland C++ Builder好呢?或者就是要求在Visual Basic和Delphi之間作出選擇。學習程序設計和學習程序設計語言究竟是怎麼一個關系?初學者究竟應該如何取捨呢?就此我們打個簡單的比方:學習程序設計就好比學習射擊,而程序設計語言就對應射擊中的氣槍、手槍、步槍等各種槍械。學習射擊必須要選擇一種槍械,不可能沒有槍還能學好射擊的,也不可能同時學會使用所有的槍械。但是,如果掌握一種槍械的射擊,再學別的也就觸類旁通了。因為在熟悉一種槍械的同時,也學習了射擊技術本身。再學其他的,自然事半功倍。學習程序設計也是一樣,必然要從學習一門程序設計語言開始入手。同時在學習的過程中?
建議:學習程序設計不必苛求一定要從某一種語言入手,可以在Visual Basic、Delphi、Borland C++ Builder或者DOS下的Pascal、Turbo C(或Borland C)中間選擇自己比較容易接受的一種進行學習。從中主要學習的是編程本身的思想,學習的是用程序設計的眼光來看待問題。或許,學習的效果不能馬上看到,但是可以學到扎實的基本功,而這對於將來的進一步發展是有很大好處的。這些基本功包括:
一、強化邏輯分析和建立數學模型的能力
編程的目的是什麼?是要解決現實中的問題。而現實中的問題是用自然語言描述的,目前的計算機對其無法理解。我們要做的就是必須用計算機能理解的方式將問題「告訴」計算機。也就需要我們對現實問題進行邏輯分析,建立合理的數學模型,然後以程序和數據的形式輸入計算機,R、G、B三色份量來各表示一種顏色,對於顏色的處理被轉化為對R、G、B三個整數的處理。我們只要改變這三個整數,就可以將其改變成另外一種顏色。對於其它的現實問題,我們也要像
這樣使其可以被計
二、數據結構和演算法知識
程序設計發展到現在,已經有了一套比較普遍、完整的數學模型(我們稱之為
數據結構)和對應這些數學模型的處理方法(也就是演算法)。目前的程序就是以
此為基礎的。在程序員中間流傳著一句經驗之談:「好的數據結構是程序的一
半。」其重要性可見一斑。作為一個程序員
三、豐富的實踐經驗
程序設計本身就是一門實踐性很強的學科。一個只存在於紙上的程序如同沒
有翅膀的鳥永遠不能飛翔在現實的天空。任由代碼寫得再巧妙,風格再優美,也
只是一張紙上的一連串字元而已。就好比是一份作文練習,或許寫得很好,但是
不交給老師去批閱,和一張白紙又有什麼區別呢?!最後,作為一個程序員還有一點小要求:那就是身體素質要好,能熬夜才行。
Top of Form 1
選其器與善其事——縱談編程工具的選擇選其器相同主題的文章
「工欲善其事,必先利其器」——《論語》。很多人在學習軟體編程時,都希望
選擇一款優秀的編程工具。到書店逛逛,可以看到各種琳琅滿目的編程書籍,可
是你還沒有想好選擇學習什麼編程語言,也就無所適從,不知道該買什麼書看。
要想學好編程,必須認真了解各種語言的特點,找准自己的學習方向。那麼你首
先必須明確你想要做什麼,你所感興趣的是什麼?進一步說就是:你現在想要完
成哪一方面的程序設計,你的程序主要完成的功能是什麼?由此在眾多軟體中,
選擇出適合自己的開發工具。
一、基礎語言開發工具
諸如Delphi、VC++、VB等語言都是一種面向對象的程序設計語言,雖然每種語言在對面向對象的支持不盡相同,但它們始終貫穿整個程序設計的思維方式的主線。因此,要學好這些語言最開始不應該將重點放在某種語言的具體語法格式上,而應該注重學習面向對象的基本理論
最容易的入門語言——Visual Basic
在掌握面向對象編程的基本概念的基礎上,相對來講,VB是比較容易入門的
一門語言。在學習VB時,應該注意抓住對象的精髓,避免凌亂和繁雜,注意掌握
對象和控制項的屬性和事件以及它們的功能和用法、主要函數的簡單功能。最有效
的方法就是自己組織一個由簡到繁的學習步驟,比如:在學習VB簡單繪圖功能時,學著自己繪制正弦曲線;學習使用picturecl控制項來製作一個液晶效果顯示時間;在學習API函數時,製作自己的任務欄圖標。這種方法能夠很好的幫助你掌握VB中常用對象、事件的使用。
最靈活的語言——Delphi
對於Delphi來講,如果你曾經學過PASCAL的話,你會發現很多東西都是「似曾相識」的。確實如此,Delphi本身就是由和PASCAL結構類似的Object
Pascal編寫而成。如果你有一定的PASCAL基礎,學習起來當然更輕松一些。另外,還應注意對Delphi中包的理解和應用。比如,對運行期包、設計期包以及自己建立包應該注意的事項。在熟練掌握Object Pascal語言的基礎上,可以把學習Delphi時的重點放到如何使用Delphi編寫Windows應用程序,Delphi資料庫編程和創建控制項以及程序開發上面。
最強大的語言——Visual C++
VC++中由於有較完整的微軟基本類庫,使開發Windows應用程序變得簡單而
高效。它提供的復雜的資源編輯器,可以很方便地編輯對話框、菜單、工具欄以及其他組成元素,因此它的功能強大,使用方便,但是和VB、Delphi相比,入門較難、不容易掌握。學習VC++,應該首先把重點方在基本數據類型、輸入/輸出、循環和數組、模板以及如何創建C++應用程序上面。在此之後,才應該進一步學習VC++中資源編輯器的使用、ActiveX控制項的使用以及編輯器優化等內容。目前很多關於VC++的書籍中大部份都是對使用VC++各個版本開發應用程序的介紹,而忽略了C++的基本知識,實際上,對於初學者來講,直接從具體應用程序設計入手而忽略基本知識,反而會在很大程度上加大學習難度,很容易喪失學習的信心?!---->
當然在上述這些語言中,都提供有自己的資料庫編程和Internet編□'7b。在對程序本身熟練掌握的基礎上,你還可根據自己的需要選擇學習。當你已具有一定程序設計能力時,不妨自己設計一個現實、有興趣的課題,自行開發、自行設計。這樣可以幫你很好地熟練
二、資料庫編程
如果你主要是想完成資料庫方面的設計,那麼應該選擇專門的資料庫開發工具,常見的有:SQLServer、PowerBulider等。假如只是需要完成相對簡單的資料庫功能,那就仔細看看Access吧。花不多的時間,也能讓你有很大的收獲,另外,還有一些專門用於大型資料庫開發的工具如:DB2、Sysbase以及Oracle,這一類的軟體一般都需要有較扎實的資料庫基礎知識和一定的軟體開發能力。如果你是從頭開始的話,建議不要一開始就去學習這一類軟體。PB和SQLServer主要是用於完成數據處理和資料庫的訪問。由於SQLServer和操作系統兼容性較好以及在網路中的廣泛應用,目前很多業余愛好者都選擇學習它,在學習SQLServer時,應把重點放在SQL語言的組成、SQL的事務管理以及SQL的查詢和優化上面。而PB則一直都是很多從事數人來講,在學習資料庫基本使用技巧的同時,還應注意到在PB中,對於需要訪問Windows特殊功能的應用程序需要調用API函數,比如:控制滑鼠、創建目錄以及閃□'7b窗口等。
在學習資料庫編程時,可以嘗試著完成一個完整的軟體開發周期。從需求分析隍7d始,親身經歷設計資料庫、創建資料庫前端、創建表格、完成常見查詢以及輸出報表等全部過程。
三、網路編程
目前較為流行的網路編程工具可謂「風格迥異,百花齊放」。每一種工具都有其獨特的特點,在互聯網實現上都有各自的優勢。
在學習Java時,應該明確其中對象、繼承等面向對象的基本理論,從根本上掌握Java的運行機制。在學習中應把重點放在其語言基礎、Java與ActiveX以及JavaBeans等組件之間的編程技術以及應用上來。你可以自己編一些較為經典的小程序來加深基本技能的掌握:用Java的圖形處理能力編寫紙牌游戲,用AWT編寫掃雷或者俄羅斯方塊、用Java的網路功能編寫網路聊天室等等。
相對來講,ASP編輯方式簡單、容易上手、功能強大,早已被廣泛採用。在學
習ASP時,應該首先對ASP相關的網路知識、Web Server設置、HTML語言等方面有
一定了解,在此基礎上,注重ASP的主要編程語言VBScript、ASP的常用對象和組
件的學習。如果想對ASP有較深入的了解的話,還必須對其常用的資料庫
SQLServer、Acess等具有基本的使用技能。你可以自己嘗試編一個簡單的網上投票、網上超市等程序來加深對上述知識的掌握。
另外,值得一提的還有網路編程語言的「新秀」——PHP。它□'5c脫了ASP只能使用NT或者Windows 2000為伺服器操作系統的限制,對於資料庫的訪問較ASP更快、更直接。但是目前對於初學者來講,其語言比較難理解,安裝相對復雜、可供參考和學習的資料遠不及ASP。同時在Windows中使用PHP,並不能夠很好地體現其優越性。因此,我們建議對於沒有Linux/Uninx基礎的初學者,最好不要從PHP學起。
網路編程還有一個很大的特點:處處留心皆學問。時常留意互聯網上各個網站的設計,留心他人的設計思想和創意,會使你的網路編程技巧進步很快。總的來講,網路編答7b本身難度並不大,但是由於其在具體項目設計上涉及范圍較廣,比如涉及到與各種各樣的資料庫直接的介面、 學習語言的過程,是自己創造、自己編程的過程,也是逐漸掌握、逐漸應用的過程。在學習過程中逐漸培養起良好的編程思維、經驗,逐步提高程序設計能力、找到更好的設計方案才是編程開發的真正精髓和樂趣所在!
㈢ PHP面試有什麼技巧么
PHP程序員在面試的時候一般應該抓住以下幾個點。
一、應該介紹自己掌握的開發一種,主要介紹PHP語言的獨特語法以及如何使用,比如PHP語言會比CGI更快的執行動態頁面。
二、必須熟悉Oracle、Mysql等資料庫,並能簡單的介紹自己掌握的程度。由於php做出的動態頁面比用其他語言做出來的頁面在執行效率以及CGI方面高得多,所以你還需要在面試中說出自己的文檔撰寫能力很強。
三、PHP程序員應該具備獨立分析和解決問題的能力,可以在自我介紹中講講自己曾經遇到過的問題是如何解決的。讓面試官看到你的能力,這將會直接影響到你自我介紹的成功與否。
四、一個PHP程序員必須有良好的職業道德和工作態度,所以在面試中應該盡量講自己在做項目時的認真態度以及今後的工作規劃,表現出自己的進取心。
五、還有關於溝通能力和理解能力的體現,這個在與HR的交談中就可以表現出來,所以需要做的工作就是從容的有條理的把自我介紹說完,回答每一個問題時都應該簡潔明了,關於自我介紹可以提前做個草稿,背一下。
六、團隊合作能力也是企業非常看重的,在培訓中老師一般都會帶領大家做項目,大的項目一般會分小組,每個人都有相對應的任務,這就模擬了公司中的團隊合作,在自我介紹過程中要把做項目的具體流程以及相互協作的過程說出來,讓HR看到自己具備團隊合作的能力。
七、最後就是執行力,每當任務分配下來的時候該如何執行,還有自己講過職業規劃後該如何執行,還有在學習的過程中是如何人字形的,遇到困難又是如何執行的,這些都可以體現出php程序員的執行力,回答的時候抓住發現及時尋找原因,快速展開行動的這個主線即可。
八、最重要的是你的能力、技術以及自己的項目
㈣ php中目錄操作opendir()、readdir()及scandir()用法示例
本文實例講述了php中目錄操作opendir()、readdir()及scandir()用法。分享給大家供大家參考,具體如下:
opendir(path,context)若成功,則該函數返回一個目錄流,否則返回
false
以及一個
error。可以通過在函數名前加上
「@」
來隱藏
error
的輸出。
readdir()
函數返回由
opendir()
打開的目錄句柄中的條目。若成功,則該函數返回一個文件名,否則返回
false。
scandir()
函數返回一個數組,其中包含指定路徑中的文件和目錄。
若成功,則返回一個數組,若失敗,則返回
false。如果
directory
不是目錄,則返回布爾值
false
付上2段搜到的讀取目錄的代碼,親測有效
顯示目錄中文件名
//
打開目錄,然後讀取其內容
if
(is_dir($dir)){
if
($dh
=
opendir($dir)){
while
(($file
=
readdir($dh))
!==
false){
echo
"filename:"
.
$file
.
"<br>";
}
closedir($dh);
}
}
拷貝一個目錄的文件到另一個目錄
_dir($from_dir,$to_dir);
function
_dir($from_dir,$to_dir){
if(!is_dir($from_dir)){
return
false;
}
echo
"\r\n
from:",$from_dir,'---to',$to_dir;
$from_files
=
scandir($from_dir);
//如果不存在目標目錄,則嘗試創建
if(!file_exists($to_dir)){
@mkdir($to_dir);
}
if(!empty($from_files)){
foreach
($from_files
as
$file){
if($file
==
'.'
||
$file
==
'..'
){
continue;
}
if(is_dir($from_dir.'/'.$file)){//如果是目錄,則調用自身
_dir($from_dir.'/'.$file,$to_dir.'/'.$file);
}else{//直接到目標文件夾
($from_dir.'/'.$file,$to_dir.'/'.$file);
}
}
}
}
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP目錄操作技巧匯總》、《php文件操作總結》、《PHP常用遍歷演算法與技巧總結》、《PHP數據結構與演算法教程》、《php程序設計演算法總結》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:使用PHP函數scandir排除特定目錄PHP獲取當前文件所在目錄
getcwd()函數php文件夾與文件目錄操作函數介紹php中判斷文件空目錄是否有讀寫許可權的函數代碼PHP解析目錄路徑的3個函數總結PHP使用glob函數遍歷目錄或文件夾的方法php
file_exists
檢查文件或目錄是否存在的函數PHP遍歷目錄函數opendir()、readdir()、closedir()、rewinddir()總結PHP刪除非空目錄的函數代碼小結PHP目錄函數實現創建、讀取目錄教程實例php使用scandir()函數掃描指定目錄下所有文件示例
㈤ PHP數據結構和演算法學習求指點
C語言是所有高級編程語言的入門語言,所以數據結構中演算法一般都使用C語言來表示,這樣大家都能看懂。學習數據結構和演算法是與語言無關的,C語言只是它實現的一種方式,不用太在乎的。建議你把C語言的基礎知識學習一下,這樣看起來就不會太累了。
㈥ 為什麼學習數據結構對ASP或PHP搞網業有好處啊
這樣的 asp 是 動態 服務 頁面的 縮寫 簡單的說 70%以上的 功能 關繫到 資料庫 有的人還說 asp 是 資料庫語言 php 是 個人 家庭 頁面的 縮寫 90% 以上功能 依賴於 資料庫 所以 說 學習數據結構對ASP或PHP搞網業有好處 ..
㈦ php中的面向對象 -> 是什麼意思
->是指針,呵呵,我也是初學者,呵呵,就太白話和你說吧,我是這么理解的一個對象就好象一個房子,裡面有桌子,電視這個就好象對象裡面的方法,那麼你找到了這個房子就好象你初始化了你的對象比如你的對象是class bb{}那麼初始化你的對象就好象$aa=new bb,你找到這個房子後你想把裡面的桌子拿來用一下,你的桌子是這個對象裡面的方法比如是function cc{}本來桌子是這個房子里的東西,你拿來用就是$aa->cc(),$aa是你剛才初始化的那個對象,就好象你找到了這個房子,而cc()這個是這個房子里的桌子,同理如果你想拿椅子,椅子是function oo{}那麼就是$aa->oo(),不知道對你有幫助沒.呵呵
㈧ php數據結構與演算法(PHP描述) 快速排序 quick sort
復制代碼
代碼如下:
<?php
/**
*
快速排序
quick
sort
*
**/
function
sort_quick($arrData)
{
if(empty($arrData)
||
!is_array($arrData))
return
false;
$flag
=
$arrData[0];
$len
=
count($arrData)
-
1;
if($len
==
0)
return
$arrData;
//
如果只有一個數據的數組直接返回
$arrLeft
=
array();
$arrRight
=
array();
$len_l
=
0;
$len_r
=
0;
for($i
=
1;
$i
<=
$len;$i++)
{
if($arrData[$i]
<
$flag)
{
$arrLeft[$len_l]
=
$arrData[$i];
//
小於的放左邊
$len_l++;
}
else
{
$arrRight[$len_r]
=
$arrData[$i];
//
大於等於的放右邊
$len_r++;
}
}
//
合並數組
$arrResult
=
array();
if($len_l)
{
$arrLeft
=
sort_quick($arrLeft);
for($i
=
0;$i
<=
$len_l
-
1;
$i++
)
{
$arrResult[$i]
=
$arrLeft[$i];
}
}
$arrResult[$len_l]
=
$flag;
$len_l++;
if($len_r)
{
$arrRight
=
sort_quick($arrRight);
for($i
=
0;$i
<=
$len_r
-
1;
$i++
)
{
$arrResult[$len_l]
=
$arrRight[$i];
$len_l++;
}
}
echo
"==
",$flag,"
==========================================<br/>";
echo
"data
:
",print_r($arrData),"<br/>";
echo
"filter
left:
",print_r($arrLeft),"<br/>";
echo
"filter
right:
",print_r($arrRight),"<br/>";
echo
"return
:
",print_r($arrResult),"<br/>";
return
$arrResult;
}
//$list
=
array(4,3,2,1,5,7,3,7);
$list
=
array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67);
$list
=
sort_quick($list);
echo
"<pre>";print_r($list);
㈨ PHP語言做網頁開發,會用到什麼數據結構,演算法
數據結構
一般的 網頁 網站開發都是用不到的
只有在 數據分析 數據挖掘 之類的網站才會使用到
演算法
簡單的排序演算法 堆棧實現 還是要了解一下
不過 這些在php中都有內置的實現,直接調用函數也就可以
高級的演算法 我也不會