原创 php實現計數排序

php實現計數排序 這個是參考百度百科的C語言版本,算法思想很簡單,就是在相等的數處理的時候有問題,不過後來也想通了,也加上了註釋。 <?php     $arr=array(1,2,3,5,2,3,9,8,3,2,7,4,9,8,0,4

原创 php實現冒泡排序

php實現冒泡排序:        思想很簡單,一共執行length-1趟,每一趟將數組從左到右每兩個進行比較,大的數都向後移動,這樣每次大的數都走到最右邊 $arr=array(1,2,3,5,2,3,9,8,3,2,7,4,9,8,0

原创 php實現歸併排序(二)

之前寫過一個用php實現歸併排序,但是那個裏面有使用php的API,於是決定重新寫一個,不用PHP api的歸併排序。 寫了一早晨,寫出來了又覺得沒啥意思了,哎,實現不了堆排序,一切都等於是白說啊。 <?php     for($i=0;

原创 php實現快速排序

php實現快速排序 快速排序:這個算法是參考百度百科的C語言的代碼,沒有參考php的代碼,因爲php的代碼雖然思路簡單,但是中間需要開好得多數組,太過於耗內存。 先獲取第一個值爲關鍵字,讓i指向第一個,j指向最後一個,先從最後一個找比ke

原创 uva 621

uva 621 #include <stdio.h> #include <string.h> int main(){     char input[1000];     int cnt,i,len;     scanf("%d\n",&c

原创 uva 548

uva 548 這個題是一個關於利用二叉樹的中序和後序來確定一棵樹的題,先前全做的都是通過先序和中序來確定一顆二叉樹,所以還想了好久。 總體思路就是,現將二叉樹的後序遍歷的順序直接反轉,然後通過後序遍歷反轉以後的第一個數字就是根節點,下來

原创 uva 10055

uva 10055 雖然是水題,但是如果使用abs來取絕對值進行運算的話,直接超時。 #include <stdio.h> int main(){     long int a,b,c;     while(scanf("%ld%ld"

原创 php實現kmp算法

一直也覺得這個算法沒啥大的用處,雖然說這個算法是我第一個學起來覺得挺帶勁的算法,可是學會了也沒用多少,就沒公開,最近學到字符串了,題目對時間複雜度有要求,所以我就把它改成php了,後來覺得挺有用的,就上傳上來。 <?php     $ar

原创 uva 10106

uva 10106 #include <stdio.h> #include <string.h> void swap(char* input){     int len=strlen(input);     int i;     char

原创 uva 401

uva 401 判斷是否爲迴文串和鏡像串,在判斷是否爲迴文串的時候問題不大,主要是判斷鏡像串的時候看怎麼將某個字符的鏡像字符給取出來,我在這裏是使用了一個將字母ascii碼減去65,將數值ascii碼減去49來實現的。 #include

原创 php實現基數排序

php實現基數排序 在百度上查了一下資料,然後又聽了一下關於這個的課,感覺不算是原創的吧,因爲好多代碼的思想都是看別人的。 整個代碼寫了一個多小時,php果然是一個很強大的語言啊,以前都是用c寫這類東西,現在突然轉到php了,感覺突然還有

原创 uva 575

uva 575 #include <stdio.h> #include <string.h> #include <math.h> int main(){     char input[35];     int i,len,sum;   

原创 uva 579

uva 579 水題,不說了,直接上代碼 #include <stdio.h> #include <string.h> int main(){     float a,b,clock,minute,result;     while(sc

原创 uva 699

uva 699 這個題應該是我在uva上面做的第一個關於二叉樹的題,直接一把通過,挺爽的。 思路就是用一個數組,在訪問根節點時將數組的下標傳爲1000,然後每次訪問左子樹,將下標減去1。訪問右子樹,將數組下標加上1. #include <

原创 php實現選擇排序

php實現選擇排序:這個也是一個O n平方的排序方法,它是一個選擇過程,它先在數組中找到最大的數的下標,然後再將最大的數放在最後邊(當然你也可以找到最小的數放在最前面),然後再找到第二大的數的下標,然後把它放在倒數第二的位置,就這樣一直循