Home  >  Article  >  Backend Development  >  Code example for implementing bubble sort in php

Code example for implementing bubble sort in php

不言
不言forward
2019-01-26 10:49:194982browse

The content of this article is about the code examples for implementing bubble sorting in PHP. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Bubble sorting is a relatively simple and commonly used algorithm, and it is also the most commonly asked question in interviews. I feel that I am not capable enough to have a deeper understanding, so I will record the contents of some materials below. There is a link to the original text at the end of the article.

Bubble sort

Bubble sort (English: Bubble Sort) is a simple sorting algorithm. It repeatedly walks through the sequence to be sorted, comparing two elements at a time and swapping them if they are in the wrong order. The work of visiting the array is repeated until no more exchanges are needed, which means that the array has been sorted. The name of this algorithm comes from the fact that smaller elements will slowly "float" to the top of the array through swapping.

Bubble sorting requires O(n2) number of comparisons for n items, and can be sorted in place. Although this algorithm is one of the simplest sorting algorithms to understand and implement, it is very inefficient for sorting arrays containing large numbers of elements.

The bubble sort algorithm works as follows:

Compare adjacent elements. If the first one is bigger than the second one, swap them both.

Do the same for each pair of adjacent elements, starting with the first pair and ending with the last pair. After this step is completed, the final element will be the largest number.

Repeat the above steps for all elements except the last one.

Continue to repeat the above steps for fewer and fewer elements each time until there are no pairs of numbers to compare.

The above is the introduction in Wikipedia. As you can see, the principle is not complicated. But it is not a good choice when the amount of data is large.

Animation Demonstration

It should be noted that the order of the code in the picture below and the example is reversed.
Code example for implementing bubble sort in php

Code example for implementing bubble sort in php

Example

<?php $arr = [33, 24, 8, 21, 2, 23, 3, 32, 16];

function bubbleSort($arr)
{
    if (!is_array($arr)) {
        return false;
    }

    $count = count($arr);

    if ($count < 2) {
        return $arr;
    }

    for ($i = 0; $i < $count; $i++) {
        for ($k = $i + 1; $k < $count; $k++) {
            // $arr[$i] 和 $arr[$k] 是相邻的两个值
            if ($arr[$i] > $arr[$k]) {
                // 前者大于后者,调换位置
                // 如果想要按照从大到小进行排序,改为 $arr[$i]  2 [1] => 3 [2] => 8 [3] => 16 [4] => 21 [5] => 23 [6] => 24 [7] => 32 [8] => 33 )

The above is the detailed content of Code example for implementing bubble sort in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete