Бинарный осуществления поиска в Java

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


public class BinarySearch

{

    public static final int NOT_FOUND = -1;

    

    /**

     * Performs the standard binary search

     * using two comparisons per level.

     @return index where item is found, or NOT_FOUND.

     */

    public static int binarySearchComparable [ ] a, Comparable x )

    {

        int low = 0;

        int high = a.length - 1;

        int mid;



        whilelow <= high )

        {

            mid = low + high 2;



            ifamid ].compareTo)

                low = mid + 1;

            else ifamid ].compareTo)

                high = mid - 1;

            else

                return mid;

        }



        return NOT_FOUND;     // NOT_FOUND = -1

    }



    // 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>