Heim >Backend-Entwicklung >PHP-Tutorial >Eine Sammlung grundlegender Algorithmen für PHP
Dieser Artikel stellt hauptsächlich die grundlegende Algorithmensammlung von PHP vor, die einen bestimmten Referenzwert hat. Jetzt kann ich sie mit allen teilen, die sie benötigen.
function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = intval(($low+$high)/2 ); if ($array[$mid] == $k){ return $mid; }elseif ( $k < $array[$mid]){ return bin_sch($array, $low, $mid-1, $k); }else{ return bin_sch($array, $mid+ 1, $high, $k); } } return -1; }
Diese Methode ist für Index-Arrays und die Werte werden von klein nach groß sortiert
Sie ist nicht auf assoziative Arrays anwendbar, die Array-Sortierung Methode ist inkonsistent oder es gibt keine Sortierung, bitte ändern Sie die if-Bedingung entsprechend. Sortierung usw. hinzugefügt.
function seq_sch($array, $n, $k){ $array[$n] = $k; for($i=0; $i<$n; $i++){ if( $array[$i]==$k){ break; } } if ($i<$n){ return $i; }else{ return -1; } } 此方法适用于索引数组并且$n = count($array);
Vereinfacht und verbessert Version
function seq_sch($array, $k){ $y = $m = 'no'; foreach($array as $i => $v){ if($v == $k){ if($i == 'no'){$m = 'yes'}//防止key = no $y = $i; break; } } if ($y != 'no' || $m == 'yes'){ return $y; }else{ return -1; } } 此方法适用于所有一维数组
function delete_array_element($array , $i){ $len = count($array); for ($j=$i; $j<$len; $j++){ $array[$j] = $array [$j+1]; } array_pop ($array); return $array ; }
$i gibt die Position des gelöschten Parameters an
function bubble_sort($array){ $count = count( $array); if ($count <= 0 ) return false; for($i=0 ; $i<$count; $i ++){ for($j=$count-1 ; $j>$i; $j--){ if ($array[$j] < $array [$j-1]){ //引用第三变量进项数组交换 $tmp = $array[$j]; $array[$j] = $array[ $j-1]; $array [$j-1] = $tmp; } } } return $array; }
function quick_sort($array ) { if (count($array) <= 1) return $array; $key = $array [0]; $left_arr = array(); $right_arr = array(); for ($i= 1; $i<count($array ); $i++){ if ($array[ $i] <= $key) $left_arr [] = $array[$i]; else $right_arr[] = $array[$i]; } $left_arr = quick_sort($left_arr); $right_arr = quick_sort($right_arr); return array_merge($left_arr , array($key), $right_arr); }
function strlen ($str){ if ($str == '' ) return 0; $count = 0; while (1){ if ($str[$count] != NULL){ $count++; continue; }else{ break; } } return $count; }
während (1) wobei 1 einen konstanten Ausdruck darstellt, was niemals gleich 0 sein wird. Daher wird die Schleife weiterhin ausgeführt. Sofern Sie nicht eine Pause oder eine ähnliche Anweisung festlegen, um aus der Schleife zu springen, wird die Schleife beendet.
$str[count] PHP ist eine schwach typisierte Sprache. Verwenden Sie Indizes, um die entsprechenden Parameter zu lesen an der entsprechenden Position
function substr($str, $start, $length=NULL){ if ($str== '' || $start>strlen($str)) return; if (($length!=NULL) && ($start>0) && ($length>strlen($str)-$start)) return; if (($length!=NULL) && ($start<0) && ($length>strlen($str )+$start)) return; if ($length == NULL) $length = (strlen($str) - $start); if ($start < 0){ for ($i=(strlen($str)+$start); $i<(strlen ($str)+$start+$length ); $i++) { $substr .= $str[$i]; } } if ($length > 0){ for ($i= $start; $i<($start+$length); $i++) { $substr .= $str[$i]; } } if ($length < 0){ for ($i =$start; $i<(strlen($str)+$length); $i++) { $substr .= $str[$i ]; } } return $substr;
}
function strrev($str){ if ($str == '') return 0 ; for ($i=(strlen($str)- 1); $i>=0; $i --){ $rev_str .= $str[$i ]; } return $rev_str; }
function strcmp($s1, $s2){ if (strlen($s1) < strlen($s2)) return -1 ; if (strlen($s1) > strlen( $s2)) return 1; for ($i=0; $i<strlen($s1); $i++){ if ($s1[$i] == $s2[$i]){ continue; }else{ return false; } } return 0; }
function strstr($str, $substr){ $m = strlen($str); $n = strlen($substr); if ($m < $n) return false ; for($i=0; $i<=($m-$n+1); $i++){ $sub = substr($str, $i, $n); if (strcmp($sub, $substr) == 0) return $i; } return false ; }
strcmp(
substr) Zeichenfolgenvergleichsmethode, wenn Sie Ich möchte nicht vergleichen. Fügen Sie für die Methode bitte eine for-Schleife hinzu
function str_replace($substr, $newsubstr, $str){ $m = strlen($str); $n = strlen($substr); $x = strlen($newsubstr); if (strchr($str, $substr) == false) return false; $str_new = $str for ($i=0; $i<=($m-$n+1); $i++){ $i = strchr($str, $substr); $str = str_delete($str_new, $i, $n); $str = str_insert($str_new, $i, $newstr); } return $str_new; }
strchr() Die Funktion sucht nach einer Zeichenfolge in einer anderen Zeichenfolge, die zum ersten Mal in erscheint.
Diese Funktion ist ein Alias der Funktion strstr().
function str_insert($str, $i , $substr) { for($j=0 ; $j<$i; $j++){ $startstr .= $str[$j]; } for ($j=$i; $j <strlen($str); $j++){ $laststr .= $str[$j ]; } $str = $startstr.$substr.$laststr; return $str ; }
function str_delete($str, $i, $j){ for ( $c=0; $c<$i; $c++){ $startstr .= $str [$c]; } for ($c=( $i+$j); $c<strlen ($str); $c++){ $laststr .= $str[$c]; } $str = $startstr.$laststr; return $str; }
function strcpy($s1, $s2){ if (strlen($s1)==NULL || !isset($s2)) return; for ($i=0; $i<strlen($s1); $i++){ $s2[] = $s1[$i]; } return $s2; }
function strcat($s1 ,$s2){ if (!isset($s1) || !isset( $s2)) return; $newstr = $s1 ; for($i=0; $i<strlen($s2); $i++){ $newstr .= $s2[$i]; } return $newstr; }
Das obige ist der detaillierte Inhalt vonEine Sammlung grundlegender Algorithmen für PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!