Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Lernimplementierung der Einfügungssortierung

PHP-Lernimplementierung der Einfügungssortierung

little bottle
Freigeben: 2023-04-06 10:40:01
nach vorne
2533 Leute haben es durchsucht

Der Hauptinhalt dieses Artikels ist die Verwendung von PHP zur Implementierung der Einfügungssortierung. Es ist eine einfache, aber klassische Algorithmusfrage. Ich frage mich, ob Sie sich daran erinnern.

Grundidee der Einfügungssortierung : Teilen Sie das Array in zwei Bereiche (sortierter Bereich und unsortierter Bereich). Nehmen Sie an, dass sich das erste Element des Arrays im sortierten Bereich befindet erstes Element Alle folgenden Elemente befinden sich im unsortierten Abschnitt. Beim Sortieren wird eine doppelschichtige Schleife verwendet, um die zu sortierenden Elemente aus dem unsortierten Teil herauszunehmen und den unsortierten Teil schrittweise zu reduzieren. Die innere Schleife wird verwendet, um die Einfügeposition aus dem sortierten Teil zu ermitteln ist, kontinuierlich aus dem sortierten Teil. Suchen Sie nach Elementen, die größer als die zu sortierenden Elemente sind, und verschieben Sie dann die Elemente des größeren sortierten Bereichs nach hinten. Das Endergebnis der Rückwärtsbewegung ist, dass das letzte Element den sortierten Bereich einnimmt die ursprüngliche Position des zu sortierenden Elements und die Mitte des sortierten Bereichs ist eine leere Position) und fügt schließlich das zu sortierende Element in den leeren Raum ein, der nach dem Verschieben des Elements übrig bleibt.

//插入排序
function insert_sort($arr) {
    //获取数组单元个数
    $count = count($arr);
    //外层循环用于从未排序区域中取出待排序元素
    for ($i=1; $i < $count; $i++) {
        //获取当前需要插入已排序区域的元素值
        $temp = $arr[$i];
        //内层循环用于从已排序区域寻找待排序元素的插入位置
        for ($j=$i-1; $j >= 0; $j--) {
            //如果$arr[$i]比已排序区域的$arr[$j]小,就后移$arr[$j]
            if ($temp < $arr[$j]) {        
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $temp;
            } else {
                //如果$arr[$i]不小于$arr[$j],则对已排序区无需再排序
                break;
            }
        }
    }
    return $arr;
}

$arr = array(6, 19, 26, 62, 88, 99, 18, 16, 1);
var_dump(insert_sort($arr));
  测试结果:
Nach dem Login kopieren

 

Verwandte Tutorials: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPHP-Lernimplementierung der Einfügungssortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Neueste Artikel des Autors
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage