zoukankan      html  css  js  c++  java
  • 调整数组顺序使奇数位于偶数前面

          前几天做美团的笔试遇到的一道编程题,这是一类问题比如:负数出现在整数前面、小于某个数的出现在前面等等。利用快速排序思想,定义两个指针,初始化时第一个指针指向数组的第一个元素,,第二个指针指向数组最后一个元素;如果第一个指针指向的是偶数,第二个指针指向的数字是奇数,交换两个数字,且第一个指针始终在第二个指针前面。

    代码如下:

    public void reOrderArray(int a[])
    {
        if(a == null)
            return;
        int begin = 0;
        int end = a.length - 1;
        while(begin < end)
        {
            while(begin < end && isOdd(a[begin]))
                begin ++;
            while(begin < end && !isOdd(a[end]))
                end -- ;
            if(begin < end) //交换位置
            {
                int tmp = a[begin];
                a[begin] = a[end];
                a[end] = tmp;
            }
        }
    }
    public boolean isOdd(int n) // 排序条件
    {
        return (n&1) == 0;
    }

    完成代码这里

  • 相关阅读:
    虚拟机virtualBox
    在scala命令行中加入类库
    使用git submodule
    Julia1.x安装
    texshop 使用技巧
    vimdiff换行
    双系统磁盘挂载失败
    www.wolframalpha.com
    sublime3激活方法
    实验数据
  • 原文地址:https://www.cnblogs.com/wxshi/p/5879422.html
Copyright © 2011-2022 走看看