Home  >  Article  >  Backend Development  >  Detailed explanation of direct selection sorting in PHP sorting algorithm series

Detailed explanation of direct selection sorting in PHP sorting algorithm series

jacklove
jackloveOriginal
2018-07-03 17:53:011315browse

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.

Articles you may be interested in:

Detailed explanation of insertion sort of PHP sorting algorithm series

##Explanation of PHP implementation of bucket sorting algorithm

##Detailed explanation of the problems encountered when developing and setting up lazy loading in Laravel Service Provider


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!

Statement:
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