小编Ezr*_*3zr的帖子

C语言中的二进制搜索递归算法问题

好的,所以我给了这个功能

int bin(int value, int size, int array[])
Run Code Online (Sandbox Code Playgroud)

我应该在"array []"中找到"value",但是这里的问题在于,在大多数情况下,我们有类似的东西.

int bin(int value, int max, int min, int array[])
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,这部分的递归要容易得多,因为我仍然可以传递我所在的数字,以及记住数组的大小.

int bin(int array[], int value, int min, int max)
{
    if(max < min)
        return -1;
    else
    {
        int mid = min + (max - min)/2;

        if(array[mid] > value)
            return bin(array, value, min, mid-1);
        else if(array[mid] < value)
            return bin(array, value, mid+1, max);
        else
            return mid;
    }
Run Code Online (Sandbox Code Playgroud)

但由于我只能传递1个整数,我究竟会如何调整这个算法呢?从本质上讲,我只能做这样的事情,但我知道它在逻辑上不会起作用.有没有办法,我可以看到数组的大小?我尝试过,但数字没有正确处理.

   int bin(int array[], int value, int size)
    {
            int mid = size/2;

            if(array[mid] …
Run Code Online (Sandbox Code Playgroud)

c recursion binary-search

4
推荐指数
1
解决办法
1995
查看次数

Enum Switch语句Java 6"默认"情况

private enum CLASS {FMAN, SOPH, JUN, SEN, GRAD, ERROR};

private CLASS stringToClass(String t){

    switch(CLASS.valueOf(t))
    {
    case FMAN: return CLASS.FMAN;
    case SOPH: return CLASS.SOPH;
    case JUN: return CLASS.JUN;
    case SEN: return CLASS.SEN;
    case GRAD: return CLASS.GRAD;
    default: 
        System.out.println("NOT VALID CLASS. ERROR");
        return CLASS.ERROR;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我在这里有这段代码.在构造时,我有这个方法从给定的字符串t返回相应的值.

我的问题是,让我们说"t"最终成为"CSE".我该如何处理并基本上返回CLASS.ERROR的值.

这是在Java 6中,而不是7.

java enums switch-statement

4
推荐指数
1
解决办法
4488
查看次数

标签 统计

binary-search ×1

c ×1

enums ×1

java ×1

recursion ×1

switch-statement ×1