[PHP] 算法-原址排序数组使奇数位于偶数前面的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) }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网