Heim > Artikel > Backend-Entwicklung > So implementieren Sie die In-Place-Sortierung eines Arrays in PHP, sodass ungerade Zahlen vor geraden Zahlen stehen (Code)
Der Inhalt dieses Artikels befasst sich mit der Implementierung der In-Place-Sortierung von Arrays, sodass ungerade Zahlen vor geraden Zahlen stehen (Code). Ich hoffe, es wird Ihnen hilfreich sein.
Geben Sie ein ganzzahliges Array ein und implementieren Sie eine Funktion, um die Reihenfolge der Zahlen im Array so anzupassen, dass sich alle ungeraden Zahlen in der ersten Hälfte des Arrays und alle geraden Zahlen in der zweiten Hälfte befinden des Arrays und stellen Sie sicher, dass ungerade Zahlen, ungerade Zahlen und gerade Zahlen vorhanden sind. Die relative Position zwischen geraden Zahlen bleibt unverändert.
1. Durchlaufen Sie das Array, bestimmen Sie, ob die Elemente ungerade oder gerade sind, schieben Sie sie in das neue Array und tauschen Sie Raum gegen Zeit aus
Die Idee von Einfügesortierung ist räumliche In-Place-Sortierung
2.1 Von vorne nach hinten durchlaufen und feststellen, ob die aktuelle Zahl eine ungerade Zahl ist
2.2 Beginnen Sie mit der aktuellen Zahl und Von hinten nach vorne durchlaufen, zur nächsten Position wechseln
2.3 Aktuelle ungerade Einfügeposition
for i=1;i<arr.length;i++ target=arr[i] if arr[i]%2==1 j=i-1 while j>=0&&arr[j]%2==0 arr[j+1]=arr[j] j-- arr[j+1]=target
<?php $arr=array(1,2,3,4,5,6,7,8,9,10); function reOrderArray($arr){ $length=count($arr); //从前往后遍历 for($i=1;$i<$length;$i++){ //判断当前元素是奇数 $target=$arr[$i]; if($target%2==1){ //从后往前遍历,如果有偶数就往后移动一位 $j=$i-1; while($j>=0 && $arr[$j]%2==0){ $arr[$j+1]=$arr[$j]; $j--; } //把奇数插入位置 $arr[$j+1]=$target; } } return $arr; } $arr2=reOrderArray($arr); var_dump($arr2);rrree
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die In-Place-Sortierung eines Arrays in PHP, sodass ungerade Zahlen vor geraden Zahlen stehen (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!