Рекурсивная реализация бинарного поиска в Java

Эта подсказка показывает, как реализовать бинарный поиск рекурсивно Java.


public class BinarySearchRecursive

{

    public static final int NOT_FOUND = -1;



    /**

     * Performs the standard binary search

     * using two comparisons per level.

     * This is a driver that calls the recursive method.

     @return index where item is found or NOT_FOUND if not found.

     */

    public static int binarySearchComparable [ ] a, Comparable x )

    {

        return binarySearcha, x, 0, a.length -);

    }



    /**

     * Hidden recursive routine.

     */

    private static int binarySearchComparable [ ] a, Comparable x,

                                     int low, int high )

    {

        iflow > high )

            return NOT_FOUND;



        int mid = low + high 2;



        ifamid ].compareTo)

            return binarySearcha, x, mid + 1, high );

        else ifamid ].compareTo)

            return binarySearcha, x, low, mid - );

        else

            return mid;

    }



    // Test program

    public static void mainString [ ] args )

    {

        int SIZE = 8;

        Comparable [ ] a = new Integer SIZE ];

        forint i = 0; i < SIZE; i++ )

            anew Integeri * );



        forint i = 0; i < SIZE * 2; i++ )

            System.out.println"Found " + i + " at " +

                                     binarySearcha, new Integer) ) );

    }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>