PHP算法之按奇偶排序数组

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

你可以返回满足此条件的任何数组作为答案。

示例:

输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。

提示:

1 <= A.length <= 5000
0 <= A[i] <= 5000

来源:力扣(LeetCode)

class Solution {

/**

* @param Integer[] $A

* @return Integer[]

*/

function sortArrayByParity($A) {

$count = count($A);

$j = [];

$o = [];

for( $i = 0; $i < $count;$i++ ){

if($A[$i]%2 > 0){

$j[$i+$count] =  $A[$i];

}else{

$o[$i] =  $A[$i];

}

}

return array_merge($o,$j);

}

}

原文地址:https://www.cnblogs.com/corvus/p/11985798.html

时间: 2024-11-08 10:05:15

PHP算法之按奇偶排序数组的相关文章

前端与算法 leetcode 26. 删除排序数组中的重复项

目录 # 前端与算法 leetcode 26. 删除排序数组中的重复项 题目描述 概要 提示 解析 算法 # 前端与算法 leetcode 26. 删除排序数组中的重复项 题目描述 26. 删除排序数组中的重复项 概要 一提到原地删除数组,就能立即想到双指针法,这道题本身也没什么难度,日常水题, 提示 双指针 解析 没有思路的时候,耐心一点即可 算法 /** ?*[email protected]?{number[]}?nums ?*[email protected]?{number} ?*/

排序算法系列:奇偶排序算法

概述 在上一篇中我们说到了冒泡排序的原理及实现详解.冒泡排序是一种交换排序,本文还是接着上一讲,说说另一种交换排序算法--奇偶排序. 版权说明 本文链接:http://blog.csdn.net/lemon_tree12138/article/details/50605563 – Coding-Naga - 转载请注明出处 目录 概述 版权说明 目录 奇偶排序算法 算法原理 算法原理图 算法步骤 算法可行性证明 算法过程图 算法实现 算法复杂度分析 Ref GitHub源码下载 奇偶排序算法 奇

Hark的数据结构与算法练习之奇偶排序

算法说明 奇偶排序又叫奇偶换位排序,砖排序.它是一种交换排序,也是冒泡的一个变种 顾名思义,奇偶排序,其实就是先循环奇数位,然后将奇数位与偶数位比较计算. 然后再循环偶数位,再和奇数位比较运算.看一下代码大家就明白了. 据wiki所述,这种算法是一种并行算法,个人对这块现在不太理解,没明白这块所谓的并行是什么意思,现在只是完成了一个单机版,将来如果明白了再过来进行补充啦. 代码 使用的是java package hark.sort.exchangesort; /* * 奇偶排序 */ publi

按奇偶排序数组

export default (arr) => { // 进行升序排序 arr.sort((a, b) => a - b) // 声明一个空数组用来存储奇偶排序后的数组 let r = [] // 记录奇数.偶数位下标 let odd = 1 let even = 0 // 对数组进行遍历 arr.forEach(item => { if (item % 2 === 1) { r[odd] = item odd += 2 } else { r[even] = item even += 2

【算法设计-随机算法】利用随机算法生成均匀随机排序数组

思想: 1.首先生成1到n的数组A 2.生成1到n^3的n个数的随机数组P 例如A=<1,2,3,4> P=<36,3,62,19> 3.对p数组进行从小到大的排序(利用快速排序),生成数组P1=<3,19,36,62> 4.根据3中P1的顺序,生成随机数数组A1=<2,4,1,3> 应用:腾讯面试题目 对于一个斗地主游戏,给出一个发牌的算法,让每个人的牌确保随机. 考虑假设有N张牌,要分出来M张牌,给K个人.我能想到的是,N张牌有N种排列,随机产生一种排列

力扣(LeetCode)922. 按奇偶排序数组 II

给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组作为答案. 示例: 输入:[4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受. 提示: 2 <= A.length <= 20000 A.length % 2 == 0 0 <= A[i] <= 1000 思路 遍

922. 按奇偶排序数组 II

给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组作为答案. 示例: 输入:[4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受. 提示: 2 <= A.length <= 20000 A.length % 2 == 0 0 <= A[i] <= 1000 解法:创

LeetCode-922. 按奇偶排序数组 II

给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组作为答案. 示例: 输入:[4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受. 提示: 2 <= A.length <= 20000 A.length % 2 == 0 0 <= A[i] <= 1000 没什么好

LeetCode#905 - 按奇偶排序数组

题目 给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素. 你可以返回满足此条件的任何数组作为答案. 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受. 解题思路 根据题目的描述,我们可以看到这道题只有一个要求,那就是将数组中的偶数全部挪到奇数的前面,另外顺序不计. 解法一 我看到这个题的第一反应是可以使用插入排序来解决这个问题,插入排序主要使用两个for循环,一个用来