首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java新手算法有关问题

2012-01-14 
java新手求助算法问题1)N个已经排序好的数组,每个数组有M个数字,给出一个算法把这N个数组合并成一个排好序

java新手求助算法问题
1)N个已经排序好的数组,每个数组有M个数字,给出一个算法把这N个数组合并成一个排好序的大数组,并分析该算法的时间和空间复杂度。
 
2)写一个Java函数最高效的实现字符串倒序(不能直接使用类库API)。
 
3)用Java数组实现一个先进先出的Queue。

求牛人解答

[解决办法]
用数组实现一个先进先出的queue

Java code
public class Queue{    private static final int DEFAULT = 10;    private Object[] queue;    /**     * 数组的长度     */    private int length = 0;    /**     * 当前存储了多少数据     */    private int size = 0;    public Queue()    {        queue = new Object[DEFAULT];        length = DEFAULT;    }    public Queue(int length)    {        queue = new Object[length];        this.length = length;    }    public void set(Object obj)    {        if (size >= length)        {            Object[] newQueue = new Object[length + DEFAULT];            System.arraycopy(queue, 0, newQueue, 0, length);            length = length + DEFAULT;            queue = newQueue;        }        queue[size] = obj;        size++;    }    public Object get()    {        Object object = queue[0];        size--;        for (int i = 0; i < size; i++)        {            queue[i] = queue[i + 1];        }        queue[size] = null;        return object;    }    public int size()    {        return size;    }}
[解决办法]
Stack s = new Stack();
char[] chars = "zhouyongyang".toCharArray();
int length = chars.length;
StringBuffer ss= new StringBuffer();
for(int i = 0; i < length; i++)
{
s.add(chars[i]);
}
for(int i = 0; i < chars.length; i++)
{
ss.append(s.pop());
}

这很快,,,我测试过了,,,当字符串大时,,,要比11楼的快几十部可能会更大

热点排行