


Introduction to the method of finding the minimum absolute value in an ordered array using PHP
This article mainly introduces the PHP algorithm for finding the number with the smallest absolute value in an ordered array, and briefly analyzes the related operating skills of array traversal and binary search algorithms. Friends in need can refer to it
The example in this article describes the PHP algorithm for finding the number with the smallest absolute value in an ordered array. Share it with everyone for your reference, the details are as follows:
Question:
An ordered array, the value may have negative value, or it may No, now we need to find the value with the smallest absolute value.
Method 1:
Traverse the array and find the absolute minimum value. The time complexity is O(n), n is the number of elements.
Method 2:
Binary search, because the array is ordered, you can use binary search, the time complexity is O (logn).
Analysis steps:
1. If the first number is a positive number, it means there are no negative numbers in the entire array, and the first number is returned directly
2. If the last number is a negative number, it means that there is no positive number in the entire array, and the last number will be returned directly
3. If the array elements are positive or negative, it means that the element with the smallest absolute value must be in At the junction of positive and negative numbers, binary search is required:
①. If a[mid]<0, because the array is in ascending order, it means that the number with the smallest absolute value will not appear on the left side of a[mid], and at the same time Determine whether the element a[mid+1] is positive or negative. If it is a negative number, you need to search in the interval on the right side of mid. If a[mid-1] is not negative, it means that these two numbers are the positive and negative intersection points in the array. , returns the smaller absolute value of the two numbers.
②. If a[mid]>0, because the array is in ascending order, it means that the number with the smallest absolute value will not appear on the right side of a[mid], and at the same time determine the positive or negative of the element a[mid-1] , if it is a negative number, it means that these two numbers are the positive and negative intersection points in the array, and the absolute value of the two numbers is smaller. If a[mid-1] is not negative, then it needs to be in the interval to the left of mid. Find it.
③. If a[mid] == 0, then a[mid] is the absolute smallest element.
function selectAbsMinNum(array $arr) { $start = 0; $len = count($arr) - 1; if ($arr[0] > 0) { //正数数组 return $arr[0]; } if ($arr[$len] < 0) { //负数数组 return $arr[$len]; } while ($start < $len) { $mid = floor(($start + $len) / 2); if ($arr[$mid] > 0) { if ($arr[$mid - 1] > 0) { $len = $mid - 1; } else { return min($arr[$mid], -$arr[$mid - 1]); } } elseif ($arr[$mid] < 0) { if ($arr[$mid + 1] < 0) { $start = $mid + 1; } else { return min(-$arr[$mid], $arr[$mid + 1]); } } else { return $arr[$mid]; } } } $sortArr = [-5, -4, -4, -4, 5, 7, 9]; echo selectAbsMinNum($sortArr), PHP_EOL;
Run result: 4
The above is the detailed content of Introduction to the method of finding the minimum absolute value in an ordered array using PHP. 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.
