Home Backend Development PHP Tutorial Detailed explanation of various classic algorithms implemented in PHP

Detailed explanation of various classic algorithms implemented in PHP

Apr 13, 2018 pm 04:42 PM
php algorithm Detailed explanation

This article mainly shares with you detailed explanations of various classic algorithms implemented in PHP. Interested friends can make a reference


    ##

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    128

    129

    130

    131

    132

    133

    134

    135

    136

    137

    138

    139

    140

    141

    142

    143

    144

    145

    146

    147

    148

    149

    150

    151

    152

    153

    154

    155

    156

    157

    158

    159

    160

    161

    162

    163

    164

    165

    166

    167

    168

    169

    170

    171

    172

    173

    174

    175

    176

    177

    178

    179

    180

    181

    182

    183

    184

    185

    186

    187

    188

    189

    190

    191

    192

    193

    194

    195

    196

    197

    198

    199

    200

    201

    202

    203

    204

    205

    206

    207

    208

    209

    210

    211

    212

    213

    214

    215

    216

    217

    218

    219

    220

    221

    222

    223

    224

    225

    226

    227

    228

    229

    230

    231

    232

    233

    234

    235

    236

    237

    238

    239

    240

    241

    242

    243

    244

    245

    246

    247

    248

    249

    250

    251

    252

    253

    254

    255

    256

    257

    258

    259

    260

    261

    262

    263

    264

    265

    266

    267

    268

    269

    270

    <?   

    //-------------------- 

    // 基本数据结构算法

    //-------------------- 

    //二分查找(数组里查找某个元素) 

    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;    

    }    

    //顺序查找(数组里查找某个元素) 

    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;    

        }    

    }    

    //线性表的删除(数组中实现) 

    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 ;   

    }   

    //冒泡排序(数组排序) 

    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);   

    }   

    //------------------------ 

    // PHP内置字符串函数实现 

    //------------------------ 

    //字符串长度 

    function strlen ($str)   

    {   

            if ($str == &#39;&#39; ) return 0;   

            $count =  0;   

            while (1){   

                    if ( $str[$count] != NULL){   

                             $count++;   

                            continue;   

                    }else{   

                            break;   

                    }   

            }   

            return $count;   

    }   

    //截取子串 

    function substr($str, $start$length=NULL)   

    {   

            if ($str== &#39;&#39; || $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 == &#39;&#39;) 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 ;   

    }   

    //字符串替换 

    function str_replace($substr , $newsubstr, $str)   

    {   

             $m = strlen($str);   

            $n = strlen($substr );   

            $x = strlen($newsubstr );   

            if (strchr($str, $substr ) == false) return false;   

            for ( $i=0; $i<=($m- $n+1); $i++){   

                     $i = strchr($str$substr);   

                    $str = str_delete ($str, $i, $n);   

                    $str = str_insert($str$i, $newstr);   

            }   

            return $str ;   

    }   

    //-------------------- 

    // 自实现字符串处理函数

    //-------------------- 

    //插入一段字符串 

    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 <count($s); $i ++){   

                    $newstr .= $st[$i ];   

            }   

            return $newsstr;   

    }   

    //简单编码函数(与php_decode函数对应) 

    function php_encode($str)   

    {   

            if ( $str==&#39;&#39; && strlen( $str)>128) return false;   

            for( $i=0; $i<strlen ($str); $i++){   

                     $c = ord($str[$i ]);   

                    if ($c>31 && $c <107) $c += 20 ;   

                    if ($c>106 && $c <127) $c -= 75 ;   

                    $word = chr($c );   

                    $s .= $word;   

            }    

            return $s;    

    }   

    //简单解码函数(与php_encode函数对应) 

    function php_decode($str)   

    {   

            if ( $str==&#39;&#39; && strlen($str )>128) return false;   

            for( $i=0; $i<strlen ($str); $i++){   

                    $c  = ord($word);   

                    if ( $c>106 && $c<127 ) $c = $c-20;   

                    if ($c>31 && $c< 107) $c = $c+75 ;   

                    $word = chr( $c);   

                    $s .= $word ;   

            }    

            return $s;    

    }   

    //简单加密函数(与php_decrypt函数对应) 

    function php_encrypt($str)   

    {   

             $encrypt_key = &#39;abcdefghijklmnopqrstuvwxyz1234567890&#39;;   

             $decrypt_key = &#39;ngzqtcobmuhelkpdawxfyivrsj2468021359&#39;;   

            if ( strlen($str) == 0) return  false;   

            for ($i=0;  $i<strlen($str); $i ++){   

                    for ($j=0; $j <strlen($encrypt_key); $j ++){   

                            if ($str[$i] == $encrypt_key [$j]){   

                                    $enstr .=  $decrypt_key[$j];   

                                    break;   

                            }   

                    }   

            }   

            return $enstr;   

    }   

    //简单解密函数(与php_encrypt函数对应) 

    function php_decrypt($str)   

    {   

             $encrypt_key = &#39;abcdefghijklmnopqrstuvwxyz1234567890&#39;;   

             $decrypt_key = &#39;ngzqtcobmuhelkpdawxfyivrsj2468021359&#39;;   

            if ( strlen($str) == 0) return  false;   

            for ($i=0;  $i<strlen($str); $i ++){   

                    for ($j=0; $j <strlen($decrypt_key); $j ++){   

                            if ($str[$i] == $decrypt_key [$j]){   

                                    $enstr .=  $encrypt_key[$j];   

                                    break;   

                            }   

                    }   

            }   

            return $enstr;   

    }   

    ?>

    Copy after login
Related recommendations:

php algorithm questions

Simple PHP algorithm questions (with expansion)

php algorithm example sharing

The above is the detailed content of Detailed explanation of various classic algorithms implemented in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1657
14
PHP Tutorial
1257
29
C# Tutorial
1229
24
How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

See all articles