Heim Backend-Entwicklung PHP-Tutorial 经典排序算法 - 冒泡排序Bubble sort

经典排序算法 - 冒泡排序Bubble sort

Jul 29, 2016 am 09:03 AM
height margin padding px quot

Nach dem Login kopieren

经典排序算法 - 冒泡排序Bubble sort

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

这样一趟过去后,最大或最小的数字被交换到了最后一位,

然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子

例子为从小到大排序,

原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |

第一趟排序(外循环)

第一次两两比较6 > 2交换(内循环)

交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |

交换后状态| 2 | 6 | 4 | 1 | 5 | 9 |

第二次两两比较,6 > 4交换

交换前状态| 2 | 6 | 4 | 1 | 5 | 9 |

交换后状态| 2 | 4 | 6 | 1 | 5 | 9 |

第三次两两比较,6 > 1交换

交换前状态| 2 | 4 | 6 | 1 | 5 | 9 |

交换后状态| 2 | 4 | 1 | 6 | 5 | 9 |

第四次两两比较,6 > 5交换

交换前状态| 2 | 4 | 1 | 6 | 5 | 9 |

交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

第五次两两比较,6

交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |

交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

第二趟排序(外循环)

第一次两两比较2

交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |

交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

第二次两两比较,4 > 1交换

交换前状态| 2 | 4 | 1 | 5 | 6 | 9 | 
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

第三次两两比较,4

交换前状态| 2 | 1 | 4 | 5 | 6 | 9 | 
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

第四次两两比较,5

交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |

交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

第三趟排序(外循环)

第一次两两比较2 > 1交换

交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

第二次两两比较,2

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 | 
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

第三次两两比较,4

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 | 
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

第四趟排序(外循环)无交换

第五趟排序(外循环)无交换

贴上自己写的代码:
function bubble_sort($arr=array(1,43,54,62,21,66,32,78,36,76,39))
{  
    $len = count($arr);
    //该层循环控制 需要冒泡的轮数
    for($i=1; $i $arr[$k+1])
            {
                $tmp = $arr[$k+1];
                $arr[$k+1] = $arr[$k];
                $arr[$k] = $tmp;
                @$arr['cly_times'] +=1; //设置循环结束
            }
        }
        if ($arr['cly_times'] == $arr['cly_times']-1) {
        	return $arr;
        }
    }
    return $arr;
}
Nach dem Login kopieren

以上就介绍了经典排序算法 - 冒泡排序Bubble sort,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Entwicklung und Anwendung von CSS-Layouteinheiten: von Pixeln zu relativen Einheiten basierend auf der Schriftgröße des Stammelements Die Entwicklung und Anwendung von CSS-Layouteinheiten: von Pixeln zu relativen Einheiten basierend auf der Schriftgröße des Stammelements Jan 05, 2024 pm 05:41 PM

Von px zu rem: Die Entwicklung und Anwendung von CSS-Layouteinheiten Einführung: In der Front-End-Entwicklung müssen wir häufig CSS verwenden, um das Seitenlayout zu implementieren. In den letzten Jahren haben sich CSS-Layouteinheiten weiterentwickelt und weiterentwickelt. Ursprünglich verwendeten wir Pixel (px) als Einheit, um die Größe und Position von Elementen festzulegen. Mit dem Aufkommen des Responsive Designs und der Beliebtheit mobiler Geräte haben Pixeleinheiten jedoch nach und nach einige Probleme aufgedeckt. Um diese Probleme zu lösen, wurde die neue Einheit rem ins Leben gerufen und nach und nach im CSS-Layout weit verbreitet. eins

Detaillierte Erläuterung der CSS-Rahmeneigenschaften: Polsterung, Rand und Rand Detaillierte Erläuterung der CSS-Rahmeneigenschaften: Polsterung, Rand und Rand Oct 21, 2023 am 11:07 AM

CSS-Rahmeneigenschaften im Detail erklärt: Padding, Margin und BorderCSS ist eine Stylesheet-Sprache, die zur Steuerung und Gestaltung von Webseitenelementen verwendet wird. Im Webdesign ist das Randattribut einer der wichtigsten Teile. In diesem Artikel wird die Verwendung des Border-Attributs in CSS ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt. padding Mit der padding-Eigenschaft wird der Abstand eines Elements festgelegt, also der Abstand zwischen dem Inhalt des Elements und den Rändern des Elements. Wir können die Auffüllung mit positiven Zahlen oder Prozentwerten festlegen

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Was bedeutet Marge in CSS? Was bedeutet Marge in CSS? Dec 18, 2023 am 10:30 AM

In CSS ist margin eine Eigenschaft, mit der die äußeren Ränder eines Elements festgelegt werden. Ränder sind der Abstand zwischen dem Rand eines Elements und seinem Inhalt. Der Rand kann die folgenden Werte annehmen: 1. Ein einzelner Wert: zum Beispiel Rand: 10 Pixel; alle vier Ränder (oben, rechts, unten, links) auf 10 Pixel festlegen. 2. Zwei Werte: zum Beispiel Rand: 10 Pixel; Legen Sie den oberen und unteren Rand auf 10 Pixel und den linken und rechten Rand auf 20 Pixel fest.

Detaillierte Erläuterung der CSS-Dimensionseigenschaften: Höhe und Breite Detaillierte Erläuterung der CSS-Dimensionseigenschaften: Höhe und Breite Oct 21, 2023 pm 12:42 PM

Detaillierte Erläuterung der CSS-Dimensionseigenschaften: Höhe und Breite In der Frontend-Entwicklung ist CSS eine leistungsstarke Stildefinitionssprache. Unter diesen sind Höhe und Breite die beiden grundlegendsten Dimensionsattribute, mit denen die Höhe und Breite des Elements definiert werden. In diesem Artikel werden diese beiden Eigenschaften im Detail analysiert und spezifische Codebeispiele bereitgestellt. 1. Höhenattribut Das Höhenattribut wird verwendet, um die Höhe eines Elements zu definieren. Sie können Pixel, Prozent oder verwenden

Detaillierte Erläuterung der CSS-Textlayouteigenschaften: Textüberlauf und Leerraum Detaillierte Erläuterung der CSS-Textlayouteigenschaften: Textüberlauf und Leerraum Oct 20, 2023 am 11:19 AM

Detaillierte Erläuterung der CSS-Textlayouteigenschaften: Textüberlauf und Leerraum Im Webdesign ist das Textlayout ein sehr wichtiger Link. Ein angemessenes Layout kann den Text lesbarer und schöner machen. CSS bietet mehrere Eigenschaften, um zu steuern, wie Text angezeigt wird, einschließlich Textüberlauf und Leerraum. In diesem Artikel werden die Verwendung und der Beispielcode dieser beiden Eigenschaften detailliert beschrieben. 1. Textüberlauf-Attributtext

Das Attribut „margin' hat keinen Einfluss auf Inline-Elemente Das Attribut „margin' hat keinen Einfluss auf Inline-Elemente Feb 18, 2024 pm 04:36 PM

Die Auswirkung des Randes auf Inline-Elemente unterscheidet sich von der auf Elemente auf Blockebene. In Inline-Elementen wirkt sich das Randattribut nur auf die vertikalen oberen und unteren Ränder aus, nicht auf die horizontalen linken und rechten Ränder. Wenn es beispielsweise in HTML ein Absatzelement gibt, können wir einige Stile dafür festlegen und die Auswirkung des Randattributs darauf beobachten. Der HTML-Code sieht so aus:

So verwenden Sie das Padding-Attribut in CSS So verwenden Sie das Padding-Attribut in CSS Dec 07, 2023 pm 02:58 PM

In CSS wird die padding-Eigenschaft verwendet, um den Abstand eines Elements festzulegen. Dies bedeutet, dass es den Abstand zwischen dem Inhalt des Elements und seinem Rand definiert. Die grundlegende Syntax ist „padding: value;“.

See all articles