zoukankan      html  css  js  c++  java
  • 数组的模3特性

    这是我去腾讯面试实习生时被问到的一道题:如何把一个数组中模3等于0的数放在数组的前面,其余的放在后面。

    算法是一开始就想到了,但是细节没有想好,所以当时写的时候程序的结构比较混乱,没有写出应有的水平。现在来对该题进行了实现,算法的思路还是很清晰的,代码如下:

    /**
     * 数组模3特性
     * @author xiaomi
     * 2012.4.26
     */
    public class Modulo3 {
     
        public static void main(String[] args) {
            int[] a = {1,3,5,7,6,9,10};
            mod3(a);
            for(int i = 0 ;i< a.length;i++){
                System.out.print(a[i]+" ");
            }
        }
         
        public static void mod3(int[] a){
            int begin,end;
            begin = 0;
            end = a.length-1;
            while(begin < end){
                while(begin < end && a[begin]%3 == 0){
                    begin++;
                }
                while(begin < end && a[end]%3 != 0){
                    end--;
                }
                if(begin < end){//小优化,考虑到最后begin>=end时就不交换了
                    int temp = a[begin];
                    a[begin] = a[end];
                    a[end] = temp;
                }
            }
        }
    }
  • 相关阅读:
    再说LZ77压缩算法
    关于LZ77压缩算法
    Qt 简易设置透明按钮
    MFC edit 控件 自动将光标置于想要输入内容的位置
    事件和委托
    2016/06/07
    2016/04/28
    2016/4/27
    2016/04/26
    重载和重写(Overload, Override)
  • 原文地址:https://www.cnblogs.com/williamxiao/p/3499952.html
Copyright © 2011-2022 走看看