日期:2014-05-20  浏览次数:20589 次

关于java的学习问题……初级
我去年买了一本java的教程,似懂非懂……迷迷糊糊就放下了……今年我决定好好学习……于是在学校的两个星期我强迫自己硬着头皮看下去发现好像并没有想象的那么难。从最基本的helloworld到方法再到类,我觉得都差不多能理解了。可是到了后来,看到继承 泛型 错误处理 还有GUI就有些不明白了……现在看不下去了,不知道该怎么学。我的数学很差(我上高二,理科),所以树上一些简单的习题我都想不到用什么算法才能实现……比如定义一个算法求两个数的最大公约数……等等这类问题,我想不出来……还有,递归算法我也似懂非懂。希望大侠们帮帮我,我非常喜欢编程,可惜我有一个不太灵光的大脑……

------解决方案--------------------
多锻炼自己的逻辑思维能力就行了
给你个二分法查找的递归算法
Java code
/*
 * @project        practice_j2se
 * @file_name    BinarySearch.java
 */

package com.j2se.exec.way;

/**
 * @author        jhb
 * @version        1.0
 * @create_on    Oct 20, 2007 6:46:10 PM
 */
public class BinarySearch {

    public static void main(String[] args) {

        int[] array = new int[10];
        for (int i = 0; i < 10; i++)
            array[i] = (i + 1) * 10;

        int aimEle = 100;
        int position = new BinarySearch().search(array, aimEle, 0, 9);
        if (position == -1)
            System.out.println("找不到目标元素!");
        else
            System.out.println("目标" + aimEle + "的下标为:" + position);
    }

    public int search(int[] gather, int aim, int left, int right) {

        int mid = (left + right) / 2;

        if (aim == gather[mid])
            return mid;
        if (left == right)
            return -1;
        if (aim < gather[mid])
            right = mid - 1;
        if (aim > gather[mid])
            left = mid + 1;

        return search(gather, aim, left, right);
    }

}