本篇文章给大家带来的内容是关于php如何实现原址排序数组使奇数位于偶数前面(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
1、遍历数组,判断元素奇数偶数,push进新数组,空间换时间
2、插入排序的思想 空间上是原址排序
2.1从前往后遍历,判断当前的是奇数
2.2从当前的开始,从后往前遍历,如果是偶数就往后一位移动
2.3当前奇数插入位置
1 2 3 4 5 6 7 8 | 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
|
登录后复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?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 );
|
登录后复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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中文网其他相关文章!