Данный отчёт сгенерирован 04.04.2023 06:21:13 UTC.
HTML версия (этот сайт) сгенерирован 04.04.2023 06:21:31 UTC.
Коммит: [bfeb65b9] add automatic zip creation 04.04.2023 06:21:13
HTML версия (этот сайт) сгенерирован 04.04.2023 06:21:31 UTC.
Коммит: [bfeb65b9] add automatic zip creation 04.04.2023 06:21:13
Задача: Пошук у Впорядкованому Масиві
04.04.2023 06:21:13
Описание: Вже оголошено структуру
struct Struct {
public int Key;
public string Value;
}
Оголосити статичний метод int BinarySearch(Struct[] ss, int key), який за заданим ключем key знаходить індекс структури в масиві ss. Якщо структури із заданим ключем немає, метод повертає -1. Елементи масиву впорядковані за зростанням ключа.
04.04.2023 06:21:13
Решений: 35
04.04.2023 06:21:13
Пошук у Впорядкованому Масиві
04.04.2023 06:21:13
static int BinarySearch(Struct[] ss, int key){
int left = 0;
int right = ss.Length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (ss[mid].Key == key) {
return mid;
}
else if (ss[mid].Key < key) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length -1;
while(left<= right)
{
int mid = left +(right-left)/2;
if(ss[mid].Key == key)
return mid;
else if(ss[mid].Key < key)
left = mid + 1;
else
right = mid -1;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key) {
int min = 0;
int max = ss.Length - 1;
while (min<= max) {
int tmp = (max + min) / 2;
if (ss[tmp].Key == key) {
return tmp;
}
else if(ss[tmp].Key > key) {
max = tmp-1;
}
else {
min = tmp+1;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (ss[mid].Key == key)
{
return mid;
}
else if (ss[mid].Key < key)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key) {
int left = 0;
int right = ss.Length;
while (left != right) {
int middle = (left + right) / 2;
if (ss[middle].Key > key) {
right = middle;
} else if (ss[middle].Key < key) {
left = middle + 1;
} else {
return middle;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
foreach (Struct el in ss) if(el.Key == key) return (Array.IndexOf(ss, el));
return -1;
}
static int BinarySearch(Struct[] ss, int key) {
for (int i = 0; i < ss.Length; i++)
if (ss[i].Key == key) return i;
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int rigth = ss.Length-1;
while(rigth-left>1)
{
if(ss[(rigth+left)/2].Key==key) return (rigth+left)/2;
if(ss[(rigth+left)/2].Key>key) rigth = (rigth+left)/2;
if(ss[(rigth+left)/2].Key< key) left = (rigth+left)/2;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
for(int i =0; i< ss.Length; i++){
if(key == ss[i].Key){
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key) {
foreach (Struct i in ss) {
if (i.Key == key) {
return key;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
int res=-1;
for(int i=0;i< ss.Length;i++){
if(ss[i].Key==key){
res=i;
}
}
return res;
}
static int BinarySearch(Struct[] ss, int key)
{
for(int i = 0; i< ss.Length; i++)
{
if (key == ss[i].Key)
{
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
for(int i = 0; i < ss.Length; i++){
if(ss[i].Key == key) return i;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
for(int i = 0;i< ss.Length; i++) if(ss[i].Key == key) return i;
return -1;
}
static int BinarySearch(Struct[] ss, int key) {
for (int i = 0; i < ss.Length; i++) {
if (ss[i].Key == key) {
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
for(int i = 0; i < ss.Length; i++)
if(ss[i].Key == key) return i;
return -1;
}
static int BinarySearch(Struct[] ss, int key) {
int min = 0, max = ss.Length-1;
while(min <= max) {
int mid = (min + max) / 2;
if(ss[mid].Key == key) {
return mid;
} else if(ss[mid].Key > key) {
max = mid - 1;
} else {
min = mid + 1;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length - 1;
int middle;
while (true)
{
middle = Convert.ToInt32((left + right) / 2);
if (ss[middle].Key == key)
{
return middle;
}
else if (ss[middle].Key > key)
{
left = middle;
}
else if (ss[middle].Key < key)
{
right = middle;
}
return -1;
}
}
static int BinarySearch(Struct[] ss, int key){
for(int i = 0; i < ss.Length - 1; i++){
if (ss[i].Key == key){
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (ss[mid].Key == key)
{
return mid;
}
else if (ss[mid].Key < key)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
for(int i=0;i< ss.Length;i++){
if(ss[i].Key == key){
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
return Array.IndexOf(ss, key);
}
static int BinarySearch(Struct[] ss, int key)
{
//Console.WriteLine(key);
int low= 0, high = ss.Length-1;
int mid;
while (low <= high)
{
mid = (low+high)/2;
if (ss[mid].Key == key) return mid;
else if (ss[mid].Key > key) high = mid - 1;
else if (ss[mid].Key < key) low = mid + 1;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length - 1;
int mid;
while (left <= right)
{
mid = (left + right) / 2;
if (ss[mid].Key > key)
right = mid - 1;
else if (ss[mid].Key < key)
left = mid + 1;
else
return mid;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
for(int i = 0; i < ss.Length; i++){
if(ss[i].Key == key){
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
foreach(Struct s in ss)
{
if(s.Key == key)
return key;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key) {
foreach(Struct x in ss)
if(x.Key == key) return Array.IndexOf(ss, x);
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length;
while (left < right)
{
if (ss[(right + left) / 2].Key < key)
{
left = (right + left) / 2 + 1;
}
else if (ss[(right + left) / 2].Key > key)
{
right = (right + left) / 2;
}
else { return (right + left) / 2; }
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
for(int i = 0;i< ss.Length;i++){
if(ss[i].Key == key) return i;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (ss[mid].Key == key)
return mid;
else if (ss[mid].Key < key)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
for(int i=0; i< ss.Length; i++)
{
if (ss[i].Key == key)
{
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
for (int i = ss.Length / 2; i != 0; i /= 2)
{
if (ss[i].Key == key)
{
return i;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key)
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int middle = (left + right) / 2;
if (ss[middle].Key == key)
{
return middle;
}
else if (ss[middle].Key < key)
{
left = middle + 1;
}
else
{
right = middle - 1;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
int left = 0;
int right = ss.Length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (ss[mid].Key == key) {
return mid;
}
else if (ss[mid].Key < key) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return -1;
}
static int BinarySearch(Struct[] ss, int key){
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (ss[mid].Key == key)
{
return mid;
}
else if (ss[mid].Key < key)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return -1;
}
int left = 0;
int right = ss.Length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (ss[mid].Key == key) {
return mid;
}
else if (ss[mid].Key < key) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return -1;
}
{
int left = 0;
int right = ss.Length -1;
while(left<= right)
{
int mid = left +(right-left)/2;
if(ss[mid].Key == key)
return mid;
else if(ss[mid].Key < key)
left = mid + 1;
else
right = mid -1;
}
return -1;
}
int min = 0;
int max = ss.Length - 1;
while (min<= max) {
int tmp = (max + min) / 2;
if (ss[tmp].Key == key) {
return tmp;
}
else if(ss[tmp].Key > key) {
max = tmp-1;
}
else {
min = tmp+1;
}
}
return -1;
}
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (ss[mid].Key == key)
{
return mid;
}
else if (ss[mid].Key < key)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return -1;
}
int left = 0;
int right = ss.Length;
while (left != right) {
int middle = (left + right) / 2;
if (ss[middle].Key > key) {
right = middle;
} else if (ss[middle].Key < key) {
left = middle + 1;
} else {
return middle;
}
}
return -1;
}
foreach (Struct el in ss) if(el.Key == key) return (Array.IndexOf(ss, el));
return -1;
}
for (int i = 0; i < ss.Length; i++)
if (ss[i].Key == key) return i;
return -1;
}
{
int left = 0;
int rigth = ss.Length-1;
while(rigth-left>1)
{
if(ss[(rigth+left)/2].Key==key) return (rigth+left)/2;
if(ss[(rigth+left)/2].Key>key) rigth = (rigth+left)/2;
if(ss[(rigth+left)/2].Key< key) left = (rigth+left)/2;
}
return -1;
}
for(int i =0; i< ss.Length; i++){
if(key == ss[i].Key){
return i;
}
}
return -1;
}
foreach (Struct i in ss) {
if (i.Key == key) {
return key;
}
}
return -1;
}
int res=-1;
for(int i=0;i< ss.Length;i++){
if(ss[i].Key==key){
res=i;
}
}
return res;
}
{
for(int i = 0; i< ss.Length; i++)
{
if (key == ss[i].Key)
{
return i;
}
}
return -1;
}
for(int i = 0; i < ss.Length; i++){
if(ss[i].Key == key) return i;
}
return -1;
}
for(int i = 0;i< ss.Length; i++) if(ss[i].Key == key) return i;
return -1;
}
for (int i = 0; i < ss.Length; i++) {
if (ss[i].Key == key) {
return i;
}
}
return -1;
}
{
for(int i = 0; i < ss.Length; i++)
if(ss[i].Key == key) return i;
return -1;
}
int min = 0, max = ss.Length-1;
while(min <= max) {
int mid = (min + max) / 2;
if(ss[mid].Key == key) {
return mid;
} else if(ss[mid].Key > key) {
max = mid - 1;
} else {
min = mid + 1;
}
}
return -1;
}
{
int left = 0;
int right = ss.Length - 1;
int middle;
while (true)
{
middle = Convert.ToInt32((left + right) / 2);
if (ss[middle].Key == key)
{
return middle;
}
else if (ss[middle].Key > key)
{
left = middle;
}
else if (ss[middle].Key < key)
{
right = middle;
}
return -1;
}
}
for(int i = 0; i < ss.Length - 1; i++){
if (ss[i].Key == key){
return i;
}
}
return -1;
}
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (ss[mid].Key == key)
{
return mid;
}
else if (ss[mid].Key < key)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return -1;
}
for(int i=0;i< ss.Length;i++){
if(ss[i].Key == key){
return i;
}
}
return -1;
}
{
return Array.IndexOf(ss, key);
}
{
//Console.WriteLine(key);
int low= 0, high = ss.Length-1;
int mid;
while (low <= high)
{
mid = (low+high)/2;
if (ss[mid].Key == key) return mid;
else if (ss[mid].Key > key) high = mid - 1;
else if (ss[mid].Key < key) low = mid + 1;
}
return -1;
}
{
int left = 0;
int right = ss.Length - 1;
int mid;
while (left <= right)
{
mid = (left + right) / 2;
if (ss[mid].Key > key)
right = mid - 1;
else if (ss[mid].Key < key)
left = mid + 1;
else
return mid;
}
return -1;
}
for(int i = 0; i < ss.Length; i++){
if(ss[i].Key == key){
return i;
}
}
return -1;
}
{
foreach(Struct s in ss)
{
if(s.Key == key)
return key;
}
return -1;
}
foreach(Struct x in ss)
if(x.Key == key) return Array.IndexOf(ss, x);
return -1;
}
{
int left = 0;
int right = ss.Length;
while (left < right)
{
if (ss[(right + left) / 2].Key < key)
{
left = (right + left) / 2 + 1;
}
else if (ss[(right + left) / 2].Key > key)
{
right = (right + left) / 2;
}
else { return (right + left) / 2; }
}
return -1;
}
for(int i = 0;i< ss.Length;i++){
if(ss[i].Key == key) return i;
}
return -1;
}
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (ss[mid].Key == key)
return mid;
else if (ss[mid].Key < key)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
{
for(int i=0; i< ss.Length; i++)
{
if (ss[i].Key == key)
{
return i;
}
}
return -1;
}
for (int i = ss.Length / 2; i != 0; i /= 2)
{
if (ss[i].Key == key)
{
return i;
}
}
return -1;
}
{
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int middle = (left + right) / 2;
if (ss[middle].Key == key)
{
return middle;
}
else if (ss[middle].Key < key)
{
left = middle + 1;
}
else
{
right = middle - 1;
}
}
return -1;
}
int left = 0;
int right = ss.Length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (ss[mid].Key == key) {
return mid;
}
else if (ss[mid].Key < key) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return -1;
}
int left = 0;
int right = ss.Length - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (ss[mid].Key == key)
{
return mid;
}
else if (ss[mid].Key < key)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return -1;
}