Данный отчёт сгенерирован 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
Задача: Пошук у Впорядкованому Масиві 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;
}