Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Blasensortierung
Als ich gestern im schriftlichen Test zu einem Vorstellungsgespräch nach Kugou ging, gab es eine Programmierfrage, in der ich aufgefordert wurde, PHP zur Implementierung der Blasensortierung zu verwenden, da ich die Blasensortierung schon lange nicht mehr verwendet habe Ich habe das Prinzip des Algorithmus vergessen. Das Ergebnis blieb leer und ich war wirklich sprachlos. Deshalb werde ich heute den PHP-Blase-Sortiercode aufzeichnen:
<code><span><?php</span><span>/** * 冒泡排序 *<span> @param</span> array $numbers 要排序的数组,只限数字一维数组 *<span> @param</span> boolean $asc 排序顺序,true是正序,false是逆序 */</span><span><span>function</span><span>bubble_sort</span><span>(array <span>$numbers</span>, <span>$asc</span> = true)</span> {</span><span>$n</span> = count(<span>$numbers</span>); <span>// 外循环最多排(n - 1)次</span><span>$out_loop_cnt</span> = <span>$n</span> - <span>1</span>; <span>for</span> (<span>$i</span> = <span>0</span>; <span>$i</span> < <span>$out_loop_cnt</span>; <span>$i</span>++) { <span>// 内循环最多排(n - i - 1)次</span><span>$in_loop_cnt</span> = <span>$n</span> - <span>$i</span> - <span>1</span>; <span>for</span> (<span>$j</span> = <span>0</span>; <span>$j</span> < <span>$in_loop_cnt</span>; <span>$j</span>++) { <span>// 根据排序顺序判断相邻两个数是否符合交换条件</span><span>$swap</span> = <span>$asc</span> ? (<span>$numbers</span>[<span>$j</span>] > <span>$numbers</span>[<span>$j</span> + <span>1</span>]) : (<span>$numbers</span>[<span>$j</span>] < <span>$numbers</span>[<span>$j</span> + <span>1</span>]); <span>if</span> (<span>$swap</span>) { <span>$temp</span> = <span>$numbers</span>[<span>$j</span> + <span>1</span>]; <span>$numbers</span>[<span>$j</span> + <span>1</span>] = <span>$numbers</span>[<span>$j</span>]; <span>$numbers</span>[<span>$j</span>] = <span>$temp</span>; } } } <span>return</span><span>$numbers</span>; } <span>$arr</span> = [<span>1</span>, <span>3</span>, <span>5</span>, <span>8</span>, <span>4</span>]; var_dump(bubble_sort(<span>$arr</span>)); <span>/** * 输出: * array (size=5) * 0 => int 1 * 1 => int 3 * 2 => int 4 * 3 => int 5 * 4 => int 8 */</span>var_dump(bubble_sort(<span>$arr</span>, <span>false</span>)); <span>/** * 输出: * array (size=5) * 0 => int 8 * 1 => int 5 * 2 => int 4 * 3 => int 3 * 4 => int 1 */</span></code>
Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.
Das Obige hat die Blasensortierung in PHP eingeführt, einschließlich einiger Aspekte davon. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.