`
help
  • 浏览: 22091 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

将一个数组按前偶后奇数排列算法复杂度要求O(n)

 
阅读更多
public static void  main(String [] args){
        int [] arr={4,5,5,1,2,3,6};
        int [] brr=new int[arr.length];
        int bindex=0;
        int blIndex=arr.length;
        for(int i=0;i<arr.length;i++){
            if(arr[i] % 2 == 0){
                brr[bindex]=arr[i];
                bindex++;
            }
            else{
                blIndex -- ;
                brr[blIndex]=arr[i];
            }
        }
        arr=brr;
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }

    }
分享到:
评论

相关推荐

    时间复杂度为O(n)的找中位数算法源代码

    根据给定文件的信息,本文将深入探讨一种时间复杂度为O(n)的寻找中位数算法,并通过具体的源代码示例来分析其工作原理及实现细节。 ### 时间复杂度为O(n)的找中位数算法 #### 一、算法背景与目标 在计算机科学中...

    按奇偶排序数组1

    题目 "按奇偶排序数组1" 是一个编程挑战,源自著名的在线编程平台 LeetCode。它的目标是给定一个非负整数数组,重新排列数组,使得所有偶数元素出现在奇数元素之前。这个任务可以通过双指针技术来解决,这是一种在...

    调整数组顺序使得奇数在偶数前面1

    标题中的“调整数组顺序使得奇数在偶数前面1”是指一种编程问题,目标是将一个整数数组重新排列,使得所有的奇数都出现在数组的前面,所有的偶数都出现在数组的后面。这个问题通常出现在算法练习中,例如LeetCode等...

    寻找两个正序数组的中位数1

    - **合并与不合并**:一个直观的解法是将两个数组合并后再求中位数,但这会增加时间复杂度,因为需要进行一次排序。 3. **算法设计**: - **二分查找法**:由于数组已排序,可以考虑使用二分查找法来提高效率。...

    Java算法实现调整数组顺序使奇数位于偶数之前的讲解

    假设我们有一个整数数组,我们需要设计一个函数来重新排列这个数组,使得所有的奇数都出现在数组的前半部分,而所有的偶数则排在后半部分。在此过程中,奇数与奇数、偶数与偶数之间的相对位置不能改变。这是一个对...

    python-leetcode面试题解之寻找两个正序数组的中位数.zip

    在Python编程语言中,LeetCode是一个非常受欢迎的在线平台,用于练习和提升算法与数据结构技能,特别是对于求职面试者来说。"寻找两个正序数组的中位数"是LeetCode上的一道经典题目,涉及到数组操作和排序算法。本...

    js代码-给定一个非负整数数组A,A中一半数是奇数,一半数是偶数,对数组进行排序,以便当A[i]为奇数时,i也是奇数;当A[i]为偶数时,i也是偶数。返回任何满足上述条件的数组作为答案。

    2. **重新排列**:接下来,我们需要将这两个子数组交错插入到一个新的数组中,以保证奇数出现在奇数索引,偶数出现在偶数索引。这个过程可以通过嵌套循环完成,外层循环按索引遍历新数组,内层循环按顺序从两个子...

    java面试-leetcode面试java编程题解之第4题寻找两个正序数组的中位数-java题解.zip

    在Java编程领域,LeetCode是一个非常知名的在线平台,它提供了大量的编程题目,旨在帮助开发者提升算法和编程技能,尤其在求职面试中具有很高的参考价值。本题解将深入探讨LeetCode上的第4题——“寻找两个正序数组...

    归并排序源代码 可运行

    因此,总的时间复杂度是n乘以log n的阶乘,这是一个非常高效的排序算法,尤其在处理大数据集时。 归并排序的空间复杂度是O(n),因为需要额外的空间来存储合并过程中形成的临时数组。尽管它比原地排序算法(如快速...

    c#-Leetcode面试题解之第4题寻找两个正序数组的中位数.zip

    通常,我们希望找到一个解决方案,其时间复杂度不超过O(log(min(m, n))),其中m和n分别为两个数组的长度。 在实际的面试环境中,面试者可能还需要考虑其他因素,如代码的可读性、可维护性和性能优化。在提交代码前...

    C语言-C语言编程基础之leetcode题解第4题寻找两个正序数组的中位数.zip

    正序数组意味着数组中的元素是按升序排列的,而中位数是将数组排序后位于中间位置的数值。对于奇数长度的数组,中位数是中间的那个数;对于偶数长度的数组,中位数是中间两个数的平均值。 解决这个问题时,我们需要...

    吉大 各种基本ACM必备算法基础

    通过选取一个基准元素,将数组分为两部分,一部分的所有元素都小于基准,另一部分的所有元素都大于基准。 ##### 2台机器工作调度 工作调度问题是指如何安排任务在多台机器上执行,以达到某种优化目标,如最小化完成...

    使用顺序表实现奇偶排序

    3. 当所有奇数或偶数都已放入相应数组后,将`arr1`和`arr2`的元素按顺序重新填入原顺序表。 **时间复杂度分析**: 该算法主要在遍历和重新填充顺序表时消耗时间。对于每个元素,我们最多只需进行两次检查(一次是...

    JavaScript实现获取两个排序数组的中位数算法示例

    本篇文章将详细讲解如何利用JavaScript实现这个算法,并满足时间复杂度为O(log(m+n))的要求。 首先,我们需要明确中位数的概念。中位数是一组数据从小到大排列后处于中间位置的数,在一组数据中,它将数据分为相等...

    find_the_middle_number.rar_Middle C

    这个问题是一个经典的算法问题,它要求在O(logn)的时间复杂度内解决,其中n是数组元素的数量。在描述中提到,我们有两个已排序的数组X和Y,它们各自包含n个元素。下面将详细探讨如何解决这个问题。 首先,我们需要...

    二分实现两个递增序列中位数查找

    在一组数值中,中位数是指将这些数值按大小顺序排列后处于中间位置的数。如果数值的个数是奇数,中位数就是正中间的那个数;如果是偶数,则中位数通常是中间两个数的平均值。 二分算法,也称为折半查找,是一种在...

    百度与阿里巴巴历年笔试面试150题.docx

    4. 数组重新排列:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度 O(1),时间复杂度为 O(n)。 5. 重合区间问题:在一维坐标轴上有n个区间段,求重合区间最长的两个区间段...

    常用排序算法(共12种)

    每次取出一个未排序的元素,找到它应该插入的位置,然后将后面的元素依次向后移动一位。 3. 选择排序(Selection Sort): 选择排序每次找出未排序部分的最小(或最大)元素,放到已排序部分的末尾,直到整个序列...

    zzu数据结构实验报告

    - **时间复杂度**:初始化列表的时间复杂度为O(1),遍历打印列表、创建列表以及逆置操作的时间复杂度均为O(n)。 - **优点**:动态调整存储空间,灵活应对不同大小的需求,减少空间浪费。 - **缺点**:如果频繁...

Global site tag (gtag.js) - Google Analytics