java面试常用算法

1.随机产生二十个字符并且排序

package com.test.kaoshi;   
 
import java.util.HashSet;   
import java.util.Iterator;   
import java.util.Random;   
import java.util.Set;   
import java.util.TreeSet;   
 
public class RadomDemo {   
/**  
 * @param random  
 * @param len  
 * @return  
 */  
    public Set getChar(){   
           
        Set numberSet01 = new HashSet();   
        Random rdm = new Random();   
        char ch;   
        while(numberSet01.size()<20){    
           int rdGet = Math.abs(rdm.nextInt())%26+97;//产生97-122的a-z值  
            ch=(char)rdGet;   
            numberSet01.add(ch);   
            //Set不能放入重复的值,当它有20个时就满足条件了  
        }    
          return numberSet01;   
        }   
    public static void main(String[] args) {   
        RadomDemo rd = new RadomDemo();   
        Set numberSet01=rd.getChar();   
           
        Set numberSet = new TreeSet();    
        numberSet.addAll(numberSet01);   
        for(Iterator it=numberSet01.iterator();it.hasNext();){    
            System.out.print(it.next());    
            }    
        System.out.println();   
        for(Iterator it=numberSet.iterator();it.hasNext();){    
            System.out.print(it.next());    
            }    
    }   

 

2.三十个人围坐在一团,数到3或3的倍数的出列,最后剩下的是谁,原来的位置是?

package com.test.kaoshi;   
 
import java.util.Iterator;   
import java.util.LinkedList;   
 
public class YouXi {   
    public static int removeNM(int n, int m) {   
        LinkedList ll = new LinkedList();   
        for (int i = 0; i < n; i++)   
            ll.add(new Integer(i + 1));   
        int removed = -1;   
        while (ll.size() > 1) {   
            removed = (removed + m) % ll.size();   
            ll.remove(removed--);   
        }   
        return ((Integer) ll.get(0)).intValue();   
    }   
 
    public static void main(String[] args) {   
        System.out.println(removeNM(50, 3));   
    }   

 

3.冒泡排序算法

/**  
 * 冒泡排序算法  
 */   
public class BubbleSort {   
    public static void sort(int[] values) {   
        int temp;   
        for (int i = 0; i < values.length; ++i) {   
            for (int j = 0; j < values.length - i - 1; ++j) {   
                if (values[j] > values[j + 1]) {   
                    temp = values[j];   
                    values[j] = values[j + 1];   
                    values[j + 1] = temp;   
                }   
            }   
        }   
    }   
}   <strong>
</strong>

 

4.递归算法

/**  
 *递归算法,求n的阶乘  
 */   
public class Recursion {   
    int result=1;   
    public int nRecursion(int n) {        
       if (n > 0) {            
          result = result * n;          
          nRecursion(n-1);        
       }    
       return result;   
    }    
}    

5.求最大公约数和最小公倍数

/**  
 * 求最大公约数和最小公倍数  
 */   
public class Convention {   
    /**  
     * 求两数的最大公约数  
     */   
    int divisor(int m,int n){    
        if(m%n==0){   
           return n;   
       }else{   
           return divisor(n,m%n);   
       }   
    }   
    /**  
     * 求两数的最小公倍数  
     */   
    int gbs(int a,int b){   
        int gbs = 0;   
        gbs = a*b/divisor(a,b);   
        return gbs;   
    }   
}   

6.写一个方法,用一个for循环打印九九乘法表

public void nineNineMulitTable(){
     for (int i = 1,j = 1; j <= 9; i++) {
               System.out.print(i+"*"+j+"="+i*j+" ");
               if(i==j){
                     i=0; j++; System.out.println();
               }
      }
 }

7.给定一个java.util.Date对象,如何转化为”2007-3-22 20:23:22”格式的字符串

public String date2FormatStr(Date date) {
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
              String str = sdf.format(date);
              return str;
}

 

8.写一个方法,能够判断任意一个整数是否素数

public boolean isPrimeNumber(int num)  
  {  
  for (int i = 2; i <= Math.sqrt(num); i++) {  
  if(num%i==0)  
  {  
  return false;  
  }  
  }  
  return true;  
  }

 

9.写一个方法,输入任意一个整数,返回它的阶乘

public int factorial(int num) {
     //递归 if(num == 1) {
                return 1;
            }
            return num*factorial(num-1);
}

posted on 2012-12-25 11:32  浮梦一生  阅读(354)  评论(0)    收藏  举报

导航