Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert den Sortieralgorithmus (1) Blasensortierung Schnelle Sortierung
Ich habe meine Algorithmenfähigkeiten schon lange nicht mehr geübt, daher habe ich viele grundlegende Algorithmen fast vergessen.
In der Vergangenheit wurden nicht viele Algorithmen in C geschrieben. Also fangen Sie noch heute an! Von nun an werde ich darauf bestehen, jeden Abend ein paar einfache Algorithmen zu schreiben und weiter zu üben!
Die erste Blasensortierung
<code>冒泡排序是最简单基础的排序,但是由于好久没写代码了,一开始写下去还是不流畅。。。罪过罪过 冒泡排序原理,每次从待排序的序列里面选出一个最大或者最小的元素放到已经排好序的序列后面。知道最后待排序的序列为无; 以下是用php实现的冒泡排序, 注意以下几点: 1)当带排序的数组为无的时候直接退出,避免出错。 2) 尼玛数组都忘记怎么写了,我真是该死。 </code>
<code><span><?php</span><span><span>function</span><span>bubblesort</span><span>(<span>$array</span>)</span>{</span><span>$count</span> = count(<span>$array</span>); <span>if</span>(<span>$count</span> == <span>0</span>){ <span>return</span><span>$array</span>; } <span>echo</span><span>$count</span>; <span>for</span>(<span>$i</span> = <span>0</span>; <span>$i</span> < <span>$count</span>; <span>$i</span>++){ <span>for</span>(<span>$j</span> = <span>$count</span> - <span>1</span>; <span>$j</span> > <span>$i</span>; <span>$j</span>--){ <span>if</span>(<span>$array</span>[<span>$j</span>] < <span>$array</span>[<span>$j</span> - <span>1</span>]){ <span>$temp</span> = <span>$array</span>[<span>$j</span>]; <span>$array</span>[<span>$j</span>] = <span>$array</span>[<span>$j</span>-<span>1</span>]; <span>$array</span>[<span>$j</span>-<span>1</span>] = <span>$temp</span>; } } } <span>return</span><span>$array</span>; } <span>$array</span> = <span>array</span>(<span>1</span>,<span>45</span>,<span>2</span>,<span>4</span>,<span>54</span>,<span>2</span>,<span>45</span>,<span>6</span>); print_r(bubblesort(<span>$array</span>)); <span>?></span></code>
Die zweite Schnellsortierung (Quicksort)
<code> 原理: 快速排序是对冒泡排序的一种改进,基本思想是通过一趟排序将要排序的数据分成两部分,其中的一部 </code>
Die Werte sind kleiner als alle Daten im anderen Teil Dann verwenden Sie diese Methode, um die beiden Teile der Daten schnell zu sortieren. Der gesamte Sortiervorgang kann rekursiv durchgeführt werden, sodass die Daten zu einer geordneten Sequenz werden.
?><code><span><span><span><?php function quickSort<span>(<span>$arr</span>)</span>{ <span>$count</span> = count<span>(<span>$arr</span>)</span>; if<span>(<span>$count</span> <= <span>1</span>)</span>{ return <span>$arr</span>; } <span>$key</span> = <span>$arr</span>[<span>0</span>]; <span>$left_arr</span> = array<span>()</span>; <span>$right_arr</span> = array<span>()</span>; for<span>(<span>$i</span> = <span>1</span>; <span>$i</span> < <span>$count</span>; <span>$i</span>++)</span>{ if<span>(<span>$arr</span>[<span>$i</span>] <= <span>$key</span>)</span>{ <span>$left_arr</span>[] = <span>$arr</span>[<span>$i</span>]; }else{ <span>$right_arr</span>[] = <span>$arr</span>[<span>$i</span>]; } } <span>$left_arr</span> = quickSort<span>(<span>$left_arr</span>)</span>; <span>$right_arr</span> = quickSort<span>(<span>$right_arr</span>)</span>; return array_merge<span>(<span>$left_arr</span>,array<span>(<span>$key</span>)</span>,<span>$right_arr</span>)</span>; } <span>$arr</span> = array<span>(<span>23</span>,<span>4</span>,<span>6</span>,<span>46</span>,<span>34</span>,<span>23</span>,<span>6234</span>,<span>34</span>,<span>12</span>,<span>34</span>)</span>; print_r<span>(quickSort<span>(<span>$arr</span>)</span>)</span>;</span></span></span></code>Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.
Das Obige stellt den in PHP implementierten Sortieralgorithmus (1) Bubble Sort und Quick Sort vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.