сделал программу бинарного поиска через цикл итерациями, как я понял можно ускорить поиск если внести некоторые изменения В коде выделил что и как я предполагаю можно изменить для ускорения, подскажите пожалуйста прав или нет? вроде программа работает
Подскажите пожалуйста как переделать условные операции, с помощью них же можно ускорить алгоритм?
public static int BinarySearchWhile(int desiredValue, int[] array)
{
int left = 0;
int right = array.Length; // правильно ли я понимаю что здесь границу поиска можно/нужно сделать array.Length - 1 ?
while (left < right) // здесь возможно для ускорения сделать так left <= right ??
{
int middle = left + (right - left) / 2;
if (array[middle] == desiredValue)
{
return middle;
}
if (array[middle] > desiredValue)
{
right = middle; // здесь точнее будет middle - 1 ??
}
else
{
left = middle + 1;
}
}
return -1;
}
public static int BinarySearchTree<T>(T[] array, int left, int right, T key) where T: IComparable
{
while (left <= right)
{
int middle = (left + right) / 2;
switch (key.CompareTo(array[middle]))
{
case 0:
return middle;
case 1:
right = middle - 1;
break;
case -1:
left = middle + 1;
break;
};
}
return -1;
}
Вызов
int[] mass = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var result = Search.BinarySearchTree(mass, 0, mass.Length - 1, 9);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как при передачи объекта в dataGridView, найти нужную строку и обновить ее не затрагивая остальные строкиЯ делаю вот так: dataGridView
Каким образом возможно передать массиву Intermediate_Cpp[3] класса Course{}; ,который в свою очередь является объектом этого класса,объекты student1, student2,...
При использовании одной в двух обьектах работает только один, второй отказываетсяИгра Кораблики , функция начинает игру и используется в двух...