Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2013, 17:17   #1
22hope22
Пользователь
 
Регистрация: 31.03.2013
Сообщений: 52
По умолчанию пояснение строки в программе

Объясните пожалуйста строчку if (Array.BinarySearch(a, b[i]) > -1), что она делает и почему условие >-1


Код:
void history (int[] a, int[] b)
        {
            int k = 0;
           for (int i = 0 ; i < b.Length; i++)
               if (Array.BinarySearch(a,  b[i]) > -1)
                   k++;
            Console.WriteLine(k);
        }
    }

Последний раз редактировалось Stilet; 13.06.2013 в 17:54.
22hope22 вне форума Ответить с цитированием
Старый 13.06.2013, 17:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://msdn.microsoft.com/ru-ru/library/4ba2bttb.aspx
В твоем случае третий параметр по умолчанию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 18:05   #3
22hope22
Пользователь
 
Регистрация: 31.03.2013
Сообщений: 52
По умолчанию

я читала это, но понять не могу. Не можешь объяснить в двух словах?
22hope22 вне форума Ответить с цитированием
Старый 13.06.2013, 18:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В двух словах. Есть метод бинарного поиска: http://ru.wikipedia.org/wiki/%D0%91%...B8%D1%81%D0%BA

Фишка в том что он производится в отсортированном массиве, и начинается с его середины. Если искомый элемент меньше элемента в середине - берется левая часть, ее середина. И так далее - массив делится на части как клетки организма, пока искомое не находится или пока есть что делить.

BinarySearch заранее предполагает что массив А (в твоем случае) отсортирован, и ищет в нем элемент b[i] этим методом.
Делается это для ускорения работы, так как бинарный поиск самый быстрый поиск.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 18:17   #5
22hope22
Пользователь
 
Регистрация: 31.03.2013
Сообщений: 52
По умолчанию

а почему >-1
22hope22 вне форума Ответить с цитированием
Старый 13.06.2013, 18:20   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Читаем внимательно ссылку что я дал:
Цитата:
Индекс заданного параметра value в указанном массиве array, если параметр value найден. Если параметр value не найден и значение параметра value меньше одного или нескольких элементов массива array, отрицательное число, которое является побитовым дополнением индекса первого элемента, превышающего по значению параметр value. Если параметр value не найден, а значение value больше любого элемента массива array, отрицательное число, которое является побитовым дополнением увеличенного на 1 индекса последнего элемента.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по программе, осуществляющей действие командной строки Andrey-spb C++ Builder 1 21.06.2012 22:52
Программеры нужно найти ошибки в программе по типу (строки) Димарик1994 Паскаль, Turbo Pascal, PascalABC.NET 4 08.01.2012 18:36
Пояснение к программе. user100 Фриланс 3 18.05.2011 22:52
Назначение строки кода в программе ArniLand Общие вопросы .NET 1 30.03.2010 16:31
передача параметров программе при запуске из командной строки shurik_7866 Общие вопросы Delphi 3 03.06.2009 18:23