PHP bubble sorting example sharing

小云云
Release: 2023-03-20 14:12:01
Original
1389 people have browsed it

Principle: For a set of data, compare the sizes of adjacent data, put the data with small values ​​in the front and the data with large values ​​in the back. (The following are all arranged in ascending order, that is, from small to large)

 Example: $arr = array(6, 3, 8, 2, 9, 1);

 $ arr has 6 data, the size of the pairwise comparison is as follows, pay attention to the number of comparison rounds and the number of comparisons in each round

The first round of sorting:

The first comparison 6 and 3 comparison results: 3 6 8 2 9 1

The second comparison result of 6 and 3: 3 6 8 2 9 1

The third comparison result of 8 and 2: 3 6 2 8 9 1

The fourth comparison, the comparison result between 8 and 9: 3 6 2 8 9 1

The fifth comparison, the comparison result between 9 and 1: 3 6 2 8 1 9

Summary of one round of comparison: 1. In the first round of sorting and comparison 5 times, no ordering from small to large was obtained. 2. Because each comparison is based on the large number moving backward, so after the comparison is completed, it can be determined that the large number is ranked last ( 9 has bubbled up, so there is no need to compare in the next round of comparison)

Second round of sorting:

First comparison 3 and 6 comparison results: 3 6 2 8 1 9

The second comparison of 6 and 2 results: 3 2 6 8 1 9

The third comparison of 6 and 8 results: 3 2 6 8 1 9

The fourth comparison 8 and 1 comparison results: 3 2 6 1 8 9

Summary of the second round of comparison: 1. Sort the second round and compare 4 times , did not get the sorting from small to large 2. 8 bubbled up, there is no need to compare 8 in the next round

The third round of sorting:

The first comparison 3 and 2 comparison result: 2 3 6 1 8 9

The second comparison, the comparison result between 3 and 6: 2 3 6 1 8 9

The third comparison, the comparison result between 6 and 1: 2 3 1 6 8 9

Summary of the third round of comparison: 1. In the third round of sorting and comparison 3 times, no order from small to large was obtained 2. 6 bubbled up, so there is no need to compare 6 in the next round

The fourth round of sorting:

The first comparison, the comparison result between 2 and 3: 2 3 1 6 8 9

The second comparison, the comparison result between 3 and 1: 2 1 3 6 8 9

Summary of the fourth round of comparison: 1. Sorting in the 4th round and comparing 2 times, no order from small to large was obtained 2. 3 bubbled up, so there is no need to compare 3 in the next round

The fifth round of sorting:

The first comparison 2 and 1 comparison results: 1 2 3 6 8 9

The fifth round of comparison summary: 1 .The 5th round of sorting and 1 comparison did not obtain the sorting from small to large. 2. 2 bubbled out. Since there is only one 1 left, there is no need to compare. So far, the entire sorting has been completed through 5 rounds of sorting.

Through the above five rounds of sorting and several comparisons, we have reason to infer a conclusion:

For an array of length N, we need to sort N-1 Rounds, each i round needs to be compared N-i times. We can use a double loop statement for this. The outer loop controls the number of loop rounds, and the inner loop controls the number of comparisons in each round.

<?php 

  function order($arr){
      $count = count($arr);
      $temp = 0; 
      //外层控制排序轮次
      for($i=0; $i<$count-1; $i++){
          //内层控制每轮比较次数
          for($j=0; $j< $count-1-$i; $j++){
                if($arr[$j] > $arr[$j+1]){
                    $temp        = $arr[$j];
                    $arr[$j]     = $arr[$j+1];
                    $arr[$j+1]   = $temp;
               }
          }
      } 
      return $arr;
     }     


 $arr= array(6,3,8,2,9,1);
$res =  order($arr);
var_dump($res);
Copy after login

Related recommendations:

php multiple solutions to implement bubble sorting

php bubble sorting array sorting method from small to large

php array bubble sort algorithm example code

The above is the detailed content of PHP bubble sorting example sharing. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template