[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)
}
[PHP] 算法-原址排序数组使奇数位于偶数前面的PHP实现的更多相关文章
- php如何实现原址排序数组使奇数位于偶数前面(代码)
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 1.遍历数组,判断元素奇数偶数 ...
- 剑指Offer:调整数组顺序使奇数位于偶数前面【21】
剑指Offer:调整数组顺序使奇数位于偶数前面[21] 题目描述 输入一个整形数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 解题分析 使用插 ...
- 剑指Offer面试题:13.调整数组顺序使奇数位于偶数前面
一.题目:调整数组顺序使奇数位于偶数前面 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 例如有以下一个整数数组:12345 ...
- 剑指offer:调整数组顺序使奇数位于偶数前面
题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 分析 事实上,这个题比较简单,很多种方式都可以实现,但是其时间复杂度或空间复 ...
- 【Java】 剑指offer(21) 调整数组顺序使奇数位于偶数前面
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇 ...
- 剑指Offer面试题:11.调整数组顺序使奇数位于偶数前面
一 题目:调整数组顺序使奇数位于偶数前面 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 二 解题思路 如果不考虑时间复杂度 ...
- 剑指Offer - 九度1516 - 调整数组顺序使奇数位于偶数前面
剑指Offer - 九度1516 - 调整数组顺序使奇数位于偶数前面2013-11-30 02:17 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部 ...
- 【剑指Offer】调整数组顺序使奇数位于偶数前面 解题报告(Python)
[牛客网]调整数组顺序使奇数位于偶数前面 解题报告 标签(空格分隔): 牛客网 题目地址:https://www.nowcoder.com/questionTerminal/beb5aa231adc4 ...
- C++版 - 剑指offer面试题14: 调整数组顺序使奇数位于偶数前面
题目: 调整数组顺序使奇数位于偶数前面 热度指数:11843 时间限制:1秒 空间限制:32768K 本题知识点: 数组 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇 ...
随机推荐
- vim折叠设置(转载)
vim折叠设置(转载) set foldmethod=indent "set default foldmethod"zi 打开关闭折叠"zv 查看此行zm 关闭折叠zM ...
- TensorFlow基本--张量
在TensorFlow中所有的数据都通过张量的形式表示,从功能上看张量可以被简单的理解为多维数据,其中零阶张量表示标量(一个数),第一阶张量为向量(一个一维数组),第n阶向量可以理解为一个n维数组. ...
- ubuntu 配置jdk报错解决办法
vi /etc/profile ,添加如下代码 export JAVA_HOME=/home/mark/android/jdk1.8 export JRE_HOME=/home/mark/androi ...
- Java中资料的上传与下载
1.导架包 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons ...
- Ubuntu 安装 chrome浏览器
按下 Ctrl + Alt + t 键盘组合键,启动终端. 输入以下命令: sudo wget http://www.linuxidc.com/files/repo/google-chrome.lis ...
- CSS---伪类选择器
伪类选择器的作用: 控制标签在不同状态下的样式. 标签的四种状态: link:没有访问过的状态: hover:鼠标经过的状态: active:鼠标激活(按下但没有松开)的状态: visited:已经被 ...
- nlog 的手动配置
使用nlog的时候,有时候需要手动配置.比如数据库链接和密码不配在文件里,或者统计配置在一个位置之类的. var config = new NLog.Config.LoggingConfigurati ...
- unicode 编解码记录
unicode 万国码.世界上所有的符号都有对应的Unicode code point.一般是2个字节. 这个字节可以通过任意中方式编码为二进制,例如用来保存到文件.一般通过UTF-x(例如utf-8 ...
- VS工具栏没有出现可用工具的情况
(1)没有切换到资源视图,打开具体的对话框. (2)如果你在调试状态,即使打开了具体的对话框,VS工具箱还是不会出现可用的控件的.所以不要在调试状态下添加控件.
- 【vue】项目编译报错 Error: No PostCSS Config found in...
问题描述: 项目在本地运行不报错,上传到 GitHub 之后,再 clone 到本地,执行: npm install 安装完成之后再执行: npm run dev 这时报错 Error: No Pos ...