Home > Article > Backend Development > Detailed explanation of direct selection sorting in PHP sorting algorithm series
This article mainly introduces the relevant information of the direct selection sorting of the PHP sorting algorithm series in detail. It has a certain reference value. Interested friends can refer to
Direct selection Sorting
The basic idea of Straight Select Sorting is: for the first time, select the minimum value from R[0]~R[n-1] and exchange it with R[0]. The second time, select the minimum value from R[1]~R[n-1], exchange it with R[1], ...., the i-th time, select the minimum value from R[i-1]~R[n-1] Value, exchange with R[i-1], ....., for the n-1th time, select the minimum value from R[n-2]~R[n-1], exchange with R[n-2], and pass in total n-1 times, get an ordered sequence arranged from small to large by sorting code·
The main advantage of selection sort is related to data movement. If an element is in the correct final position, it will not be moved. Each time selection sort swaps a pair of elements, at least one of them will be moved to its final position, so sorting a list of n elements requires at most n-1 swaps. Among all sorting methods that rely entirely on exchange to move elements, selection sort is a very good one.
Principle
First find the smallest (large) element in the unsorted sequence, store it at the starting position of the sorted sequence, and then select it from the remaining unsorted elements. Continue looking for the smallest (largest) element and place it at the end of the sorted sequence. And so on until all elements are sorted.
Example
Suppose the array is a[0...n-1].
1. Initially, the array is all unordered and the area is a[0..n-1]. Let i=0
2. Select the smallest element in the unordered area a[i...n-1] and exchange it with a[i]. After the exchange, a[0...i] forms an ordered area.
3.i and repeat the second step until i==n-1. Sorting completed.
Example
Sort the array [53,89,12,98,25,37,92,5]
First take i= 0;a[i] is the minimum value. Compare the following value with a[i]. If it is smaller than a[i], swap positions with a[i], $i
[5,89 ,53,98,25,37,92,12]
First take i=1;a[i] as the minimum value, compare the subsequent value with a[i], if it is smaller than a[i] small, then exchange positions with a[i], $i
[5,12,89,98,53,37,92,25]
Repeat the above steps
PHP code implementation
function select_sort($arr){ $length=count($arr); for ($i=0; $i <$length-1 ; $i++) { for ($j=$i+1,$min=$i; $j <$length ; $j++) { if ($arr[$min]>$arr[$j]) { $min=$j; } } $temp=$arr[$i]; $arr[$i]=$arr[$min]; $arr[$min]=$temp; } return $arr; }
The above is the entire content of this article. I hope it will be helpful to everyone's learning, and I also hope that everyone will support the php Chinese website.
Detailed explanation of insertion sort of PHP sorting algorithm series
##Explanation of PHP implementation of bucket sorting algorithm
The above is the detailed content of Detailed explanation of direct selection sorting in PHP sorting algorithm series. For more information, please follow other related articles on the PHP Chinese website!