精华内容
下载资源
问答
  • 00905 按奇偶排序数组题目描述给定一个非负整数数组 A,返回一个数组,在该数组中A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,...

    00905 按奇偶排序数组

    题目描述

    给定一个非负整数数组 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

    力扣地址

    解题报告

    两遍扫描

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    第一遍扫描输出偶数, 第二遍扫描输出奇数.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public int[] sortArrayByParity(int[] A) {

    int[] list = new int[A.length];

    int t = 0;

    for (int i = 0; i < A.length; i++) {

    if (A[i] % 2 == 0){

    list[t++] = A[i];

    }

    }

    for (int i = 0; i < A.length; i++) {

    if (A[i] % 2 == 1){

    list[t++] = A[i];

    }

    }

    return list;

    }

    }

    偶数交换

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    遍历数组,将所有偶数元素依次交换到数组前列.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public static int[] sortArrayByParity(int[] A) {

    int offset = 0;

    for(int i = 0; i < A.length; i++){

    if(A[i] % 2 == 0){

    swap(A, i, offset++);

    }

    }

    return A;

    }

    public static void swap(int[] arr, int left, int right){

    int tmp = arr[left];

    arr[left] = arr[right];

    arr[right] = tmp;

    }

    }

    原地快排

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    定义两个指针分别从高位(寻找偶数元素)和低位(寻找奇数元素)扫描. 寻找到交换位置.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public static int[] sortArrayByParity(int[] A) {

    int left = 0;

    int right = A.length - 1;

    while(left < right){

    // 遍历直到第一个偶数跳出

    while(left < right && A[right] % 2 != 0){

    right --;

    }

    // 遍历直到第一个奇数跳出

    while(left < right && A[left] % 2 == 0){

    left ++;

    }

    swap(A, left, right);

    }

    return A;

    }

    public static void swap(int[] arr, int left, int right){

    int tmp = arr[left];

    arr[left] = arr[right];

    arr[right] = tmp;

    }

    }

    00922 按奇偶排序数组 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

    力扣地址

    解题报告

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    定义两个指针,分别记录偶数和奇数元素的位置.

    遍历数组把所有的偶数放进 ans[0],ans[2],ans[4],奇数放进 ans[1],ans[3],ans[5],依次类推.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public int[] sortArrayByParityII(int[] A) {

    int[] list = new int[A.length];

    int i = 0;

    int j = 1;

    for (int x: A) {

    if (x % 2 == 0) {

    list[i] = x;

    i += 2;

    }

    if (x % 2 == 1) {

    list[j] = x;

    j += 2;

    }

    }

    return list;

    }

    }

    展开全文
  • 12.数组奇偶排序

    2019-12-17 15:45:02
    package java2019; //输入一个数组,要求奇数放在最前面,偶数放在最后面,且相对位置不变 public class Demo12 { public static void ReOrderArray(int[] array){ int temp = 0; for(int i=0;i<array....
    package java2019;
    //输入一个数组,要求奇数放在最前面,偶数放在最后面,且相对位置不变
    public class Demo12 {
    	public static void ReOrderArray(int[] array){
    		int temp = 0;
    		for(int i=0;i<array.length;i++){
    			for(int j=array.length-1;j>i;j--){
    				if(array[j]%2==1 && array[j-1]%2==0){
    					temp = array[j-1];
    					array[j-1]=array[j];
    					array[j]=temp;
    				}
    			}
    		}
    	}
    	public static void main(String[] args) {
    		int a[] = {1,3,4,8,9,7,3};
    		ReOrderArray(a);
    		for(int i:a){
    			System.out.print(i+" ");
    		}
    	}
    	
    
    }
    
    展开全文
  • 主要介绍了奇偶排序算法及Java数组的实现,奇偶排序的时间复杂度为O(N^2),需要的朋友可以参考下
  • 奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序举例吧,待排数组[6 2 4 1 5 9]第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比,4和1比,5和9比[6 2 ...

    奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序

    举例吧,

    待排数组

    [6 2 4 1 5 9]

    第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比,4和1比,5和9比

    [6 2 4 1 5 9]

    交换后变成

    [2 6 1 4 5 9]

    第二次比较偶数列,即6和1比,5和5比

    [2 6 1 4 5 9]

    交换后变成

    [2 1 6 4 5 9]

    第三趟又是奇数列,选择的是2,6,5分别与它们的邻居列比较

    [2 1 6 4 5 9]

    交换后

    [1 2 4 6 5 9]

    第四趟偶数列

    [1 2 4 6 5 9]

    一次交换

    [1 2 4 5 6 9]

    Java实现:

    static void oddEvensort(int[] ary) {

    //奇偶排序

    boolean flag = true;

    while (flag) {

    boolean odd = false, even = false;

    for (int i = 0; i < ary.length - 1; i+=2) {

    if (ary[i] > ary[i + 1]) {

    ary[i] = ary[i + 1] + 0 * (ary[i + 1] = ary[i]);

    odd = true;

    }

    }

    for (int i = 1; i < ary.length - 1; i+=2) {

    if (ary[i] > ary[i + 1]) {

    ary[i] = ary[i + 1] + 0 * (ary[i + 1] = ary[i]);

    even = true;

    }

    }

    flag = odd || even; //若为false,表示不论奇偶序列,一个符合条件的比较都没有

    }

    }

    上面的 flag = odd || even;    有一个为true,表示还在交换, 那么最后只有 都为 false时,flag才为false。

    改写成 flag = odd && even;    有一个为false,则不再整体循环了。跟冒泡排序一样,可以减少最后一次内层循环。

    展开全文
  • 00905 按奇偶排序数组题目描述给定一个非负整数数组 A,返回一个数组,在该数组中A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,...

    00905 按奇偶排序数组

    题目描述

    给定一个非负整数数组 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

    力扣地址

    解题报告

    两遍扫描

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    第一遍扫描输出偶数, 第二遍扫描输出奇数.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public int[] sortArrayByParity(int[] A) {

    int[] list = new int[A.length];

    int t = 0;

    for (int i = 0; i < A.length; i++) {

    if (A[i] % 2 == 0){

    list[t++] = A[i];

    }

    }

    for (int i = 0; i < A.length; i++) {

    if (A[i] % 2 == 1){

    list[t++] = A[i];

    }

    }

    return list;

    }

    }

    偶数交换

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    遍历数组,将所有偶数元素依次交换到数组前列.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public static int[] sortArrayByParity(int[] A) {

    int offset = 0;

    for(int i = 0; i < A.length; i++){

    if(A[i] % 2 == 0){

    swap(A, i, offset++);

    }

    }

    return A;

    }

    public static void swap(int[] arr, int left, int right){

    int tmp = arr[left];

    arr[left] = arr[right];

    arr[right] = tmp;

    }

    }

    原地快排

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    定义两个指针分别从高位(寻找偶数元素)和低位(寻找奇数元素)扫描. 寻找到交换位置.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public static int[] sortArrayByParity(int[] A) {

    int left = 0;

    int right = A.length - 1;

    while(left < right){

    // 遍历直到第一个偶数跳出

    while(left < right && A[right] % 2 != 0){

    right --;

    }

    // 遍历直到第一个奇数跳出

    while(left < right && A[left] % 2 == 0){

    left ++;

    }

    swap(A, left, right);

    }

    return A;

    }

    public static void swap(int[] arr, int left, int right){

    int tmp = arr[left];

    arr[left] = arr[right];

    arr[right] = tmp;

    }

    }

    00922 按奇偶排序数组 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

    力扣地址

    解题报告

    本题解由微信公众号小猿刷题提供, 错误之处, 欢迎指正.

    定义两个指针,分别记录偶数和奇数元素的位置.

    遍历数组把所有的偶数放进 ans[0],ans[2],ans[4],奇数放进 ans[1],ans[3],ans[5],依次类推.

    /**

    * 微信公众号"小猿刷题"

    */

    class Solution {

    public int[] sortArrayByParityII(int[] A) {

    int[] list = new int[A.length];

    int i = 0;

    int j = 1;

    for (int x: A) {

    if (x % 2 == 0) {

    list[i] = x;

    i += 2;

    }

    if (x % 2 == 1) {

    list[j] = x;

    j += 2;

    }

    }

    return list;

    }

    }

    展开全文
  • 思路: 它的思路是在数组中重复两趟扫描。 第一趟扫描选择所有的数据项对,a[j]和a[j+1],j是奇数(j=1,3,5,……)。 如果它们的关键字的值次序颠倒,就交换它们。...重复进行这样两趟 的排序直到数组全部有序
  • 数组进行排序,以便当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,...
  • 给定一个非负整数数组 A,返回一个数组,在该数组中,A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和...
  • 数组奇偶数分组

    千次阅读 2017-09-20 16:49:23
    题目:在一个N个整数数组里面,有多个奇数和偶数,设计一个排序算法,令所有的奇数都在左边。请完成sort的代码实现(C++或Java)利用快排 一趟快排时候比第一个数大的位于左边,小的位于右边, 于是可以, 奇数...
  • 数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数组作为答案。 来源:力扣(LeetCode) 链接:...
  • 本文实例讲述了java交换排序之奇偶排序实现方法。分享给大家供大家参考。具体如下:奇偶排序,或奇偶换位排序,或砖排序,是一种相对简单的排序算法,最初发明用于有本地互连的并行计算。这是与冒泡排序特点类似的一...
  • 使用了笨逼解法 先合并数组排序 在进行判断奇偶 最后得出中位数 需要注意的点 是 在java中 /2 和 /2.0是不同的 要看除数是什么类型的,如果是int :区别是 5/2=2,5/2.0f=2.5: 如果除数是浮点数 没什么区别 java中...
  • 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 ...
  • 奇偶排序数组II做题博客链接题目链接描述示例初始代码模板代码 做题博客链接 https://blog.csdn.net/qq_43349112/article/details/108542248 题目链接 https://leetcode-cn.com/problems/sort-array-by-parity-ii/...
  • leetcode-按奇偶排序数组 II(Java)题目链接题目描述示例提示思路与实现 题目链接 按奇偶排序数组 II 题目描述 给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为...
  • 数组进行排序,以便当 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...
  • 奇偶排序数组 II Java和python3实现 题目: 给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回...
  • 数组进行排序,以便当 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,...
  • 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 ...
  • 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 ...
  • 题目 思路 //偶数从头排,奇数从尾排 class Solution { public int[] sortArrayByParity(int[] A) { int[] arr=new int[A.length]; int start=0; int end=A.length-1; for(int i=0;...A.l...
  • 数组进行排序,以便当 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,...
  • 题目地址:按奇偶排序数组 题目描述: 例: 解题思路: 代码:
  • 问题描述 问题分析 巧妙的方法需要对数组有深入的理解. 正确的思路是利用左右指针来判断数组两头的值是否为奇数或偶数,在进行相应操作后,...错误思路 : 将奇偶分别存放在一个数组中后,之后再按照先添加偶数数...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 136
精华内容 54
关键字:

java数组奇偶排序

java 订阅