Home  >  Article  >  Backend Development  >  PHP Bubble Sort Algorithm_PHP Tutorial

PHP Bubble Sort Algorithm_PHP Tutorial

WBOY
WBOYOriginal
2016-07-20 11:13:46819browse

Basic concepts
The basic concept of bubble sorting is: compare two adjacent numbers in sequence, put the decimal in front, and put the larger Put the numbers at the back. That is, first compare the first and second numbers, put the decimals first and the large numbers last. Then compare the second number and the third number, put the decimal in front and the large number in the back, and continue like this until comparing the last two numbers, put the decimal in front and the large number in the back. Repeat the above process, still starting from the first pair of numbers (because it may be due to the exchange of the second number and the third number that the first number is no longer greater than the second number), put the decimal first and the large number first. Finally, compare until a pair of adjacent numbers before the smallest number, put the decimal in front and the large number in the back. The second pass ends and a new minimum number is obtained in the penultimate number. Continue like this until the sorting is finally completed.
Because in the sorting process, decimals are always placed forward and large numbers are placed backward, which is equivalent to bubbles rising, so it is called bubble sorting.
is implemented with a double loop, with the outer loop variable set to i and the inner loop variable set to j. The outer loop is repeated 9 times, and the inner loop is repeated 9, 8,..., 1 time. The two elements compared each time are related to the inner loop j. They can be identified by a[j] and a[j+1] respectively. The values ​​​​of i are 1, 2,...,9 in order. For each The values ​​of i and j are 1,2,…10-i in sequence.

produces
In many programming, we need to sort a sequence to facilitate statistics. Common sorting methods include bubble sort and binary tree Sorting, selection sorting and more. Bubble sorting has always been popular due to its concise thinking method and relatively high efficiency.

The sorting process
Imagine that the sorted array R[1..N] is erected vertically, and each data element is viewed Make weighted bubbles. According to the principle that light bubbles cannot be under heavy bubbles, scan the array R from bottom to top. Whenever a light bubble that violates this principle is scanned, make it "float" upward. Repeat this until the end. For any two bubbles, the lighter one is at the top and the heavier one is at the bottom.

The sorting implementation process is as follows:
49 38 65 97 76 13 27
38 49 65 97 76 13 27 Compare the 1st and 2nd numbers, put the smaller ones in front and the larger ones in the back 38 49 65 97 76 13 27 Compare the 2nd and 3rd numbers, put the small ones in front, and put the big ones in the back 38 49 65 97 76 13 27 Compare the 3rd and 4th numbers, put the small ones in front, and put the big ones in the back 38 49 65 76 97 13 27 Compare the 4th and 5th numbers, put the smaller ones in front, and put the larger ones in the back 38 49 65 76 13 97 27 Compare the 5th and 6th numbers, put the smaller ones Put it in front, put the big one After 38 49 65 76 13 27 97 Compare the 6th and 7th numbers, put the smaller ones in the front and the larger ones in the back. At this point, the first comparison is over and the following ordering is obtained: 38 49 65 76 13 27 97
Then Continue the comparison according to the first sorting method until the sorting is completed.

<span $arr</span> = <span array</span>(345,4,17,6,52,16,58,69,32,8,234<span ); 
</span><span for</span>(<span $i</span>=1;<span $i</span><<span count</span>(<span $arr</span>);<span $i</span>++<span ){ 
</span><span for</span>(<span $j</span>=<span count</span>(<span $arr</span>)-1;<span $j</span>>=<span $i</span>;<span $j</span>--<span ){ 
</span><span if</span>(<span $arr</span>[<span $j</span>]<<span $arr</span>[<span $j</span>-1<span ]){ 
</span><span $temp</span> = <span $arr</span>[<span $j</span>-1<span ]; 
</span><span $arr</span>[<span $j</span>-1] = <span $arr</span>[<span $j</span><span ]; 
</span><span $arr</span>[<span $j</span>] = <span $temp</span><span ; 
} 
} 
} </span>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/440331.htmlTechArticleBasic concept The basic concept of bubble sort is: compare two adjacent numbers in sequence, and put the decimal in front , the large number is placed at the back. That is, first compare the 1st and 2nd numbers, put the decimal first, the big one...
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