這篇文章帶給大家的內容是關於php如何實現原址排序數組使奇數位於偶數前面(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
1、遍歷數組,判斷元素奇數偶數,push進新數組,空間換時間
2、插入排序的想法 空間上為原址排序
#2.1從前往後遍歷,判斷目前的是奇數
#2.2從目前的開始,從後往前遍歷,如果是偶數就往後一位移動
2.3目前奇數插入位置
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);
array(10) { [0]=> int(1) [1]=> int(3) [2]=> int(5) [3]=> int(7) [4]=> int(9) [5]=> int(2) [6]=> int(4) [7]=> int(6) [8]=> int(8) [9]=> int(10) }
以上是php如何實現原址排序數組使奇數位於偶數前面(代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!