


Comparison of running time of four basic sorting algorithms implemented in PHP (must read)
This article will introduce to you the running time comparison of four basic sorting algorithms implemented in PHP. It is very good and has reference value. Friends who are interested should take a look at it.
Many people say that algorithms are the core of the program. , the quality of the algorithm determines the quality of the program. As a junior PHPer, although I have little exposure to algorithmic things. However, you should still master the basic sorting algorithm. It is an essential tool for program development. This article will introduce to you the running time comparison of four basic sorting algorithms implemented in PHP. Let’s take a look.
No more nonsense, I will just post the code for you.
The specific code is as follows:
/** * php四种基础排序算法的运行时间比较 * @authors Jesse (jesse152@163.com) * @date 2016-08-11 07:12:14 */ //冒泡排序法 function bubbleSort($array){ $temp = 0; for($i = 0;$i < count($array) -1;$i++){ for($j = 0;$j < count($array) - 1 -$i;$j++){ if($array[$j] > $array[$j+1]){ //从小到大排列 $temp = $array[$j]; $array[$j] = $array[$j+1]; $array[$j+1] = $temp; } } } } //选择排序法 function selectSort($array){ $temp = 0; for($i = 0;$i < count($array) - 1;$i++){ $minVal = $array[$i]; //假设$i就是最小值 $minValIndex = $i; for($j = $i+1;$j < count($array);$j++){ if($minVal > $array[$j]){ //从小到大排列 $minVal = $array[$j]; //找最小值 $minValIndex = $j; } } $temp = $array[$i]; $array[$i] = $array[$minValIndex]; $array[$minValIndex] = $temp; } } //插入排序法 function insertSort($array){ //从小到大排列 //先默认$array[0],已经有序,是有序表 for($i = 1;$i < count($array);$i++){ $insertVal = $array[$i]; //$insertVal是准备插入的数 $insertIndex = $i - 1; //有序表中准备比较的数的下标 while($insertIndex >= 0 && $insertVal < $array[$insertIndex]){ $array[$insertIndex + 1] = $array[$insertIndex]; //将数组往后挪 $insertIndex--; //将下标往前挪,准备与前一个进行比较 } if($insertIndex + 1 !== $i){ $array[$insertIndex + 1] = $insertVal; } } } //快速排序法 function quickSort($array){ if(!isset($array[1])) return $array; $mid = $array[0]; //获取一个用于分割的关键字,一般是首个元素 $leftArray = array(); $rightArray = array(); foreach($array as $v){ if($v > $mid) $rightArray[] = $v; //把比$mid大的数放到一个数组里 if($v < $mid) $leftArray[] = $v; //把比$mid小的数放到另一个数组里 } $leftArray = quickSort($leftArray); //把比较小的数组再一次进行分割 $leftArray[] = $mid; //把分割的元素加到小的数组后面,不能忘了它哦 $rightArray = quickSort($rightArray); //把比较大的数组再一次进行分割 return array_merge($leftArray,$rightArray); //组合两个结果 } $a = array_rand(range(1,3000), 1600); //生成1600个元素的随机数组 shuffle($a); //打乱数组的顺序 $t1 = microtime(true); bubbleSort($a); //冒泡排序 $t2 = microtime(true); echo "冒泡排序用时:".(($t2-$t1)*1000).'ms'."\n"; $t3 = microtime(true); selectSort($a); //选择排序 $t4 = microtime(true); echo "选择排序用时:".(($t4-$t3)*1000).'ms'."\n"; $t5 = microtime(true); insertSort($a); //插入排序 $t6 = microtime(true); echo "插入排序用时:".(($t6-$t5)*1000).'ms'."\n"; $t7 = microtime(true); quickSort($a); //快速排序 $t8 = microtime(true); echo "快速排序用时:".(($t8-$t7)*1000).'ms';
Summary: The above is the entire content of this article, I hope it can be helpful to everyone’s learning help.
Related recommendations:
How to implement custom functions in PHP to obtain the first letters of Chinese characters
phpUsage of image processing function imagecopyresampled
Detailed explanation of PHP object-oriented inheritance usage
The above is the detailed content of Comparison of running time of four basic sorting algorithms implemented in PHP (must read). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

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,

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

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

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.

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.
