public int SSearch3(int[] x, int t)
{
int size = x.Length;
// Временно сохраняем последний
int hold = x[size - 1];
/* Если последний элемент искомый
* то это нужно проверять сразу
*/
if (hold == t) return size - 1;
x[size - 1] = t;
int i = 0;
while (true)
{
if (x[i] == t) break;
if (x[i + 1] == t) { i += 1; break; }
if (x[i + 2] == t) { i += 2; break; }
if (x[i + 3] == t) { i += 3; break; }
if (x[i + 4] == t) { i += 4; break; }
if (x[i + 5] == t) { i += 5; break; }
if (x[i + 6] == t) { i += 6; break; }
if (x[i + 7] == t) { i += 7; break; }
i += 8;
}
// Восстанавливаем значение последнего
x[size - 1] = hold;
if (i == size-1)
{
return -1;
}
return i;
}