0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 51
1

Написать программу, которая считает среднее число шагов в двоичном поиске для массива

07.07.2015, 10:55. Показов 3217. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая считает среднее число шагов в двоичном поиске для массива из 32 элементов в интервале [0,100]. Для поиска использовать 1000 случайных чисел в этом же интервале.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2015, 10:55
Ответы с готовыми решениями:

Посчитать среднее число шагов в двоичном поиске для массива
Всем доброго времени суток,помогиет пожалуйста написать программу, которая считает среднее число...

Посчитать среднее число шагов при двоичном поиске для массива
Задания по теме Сортировка. Двоичный поиск. Матрицы. HELP Python Чайник) Напишите программу,...

Написать программу которая считает среднее арифметическое.без использования массива.
Помогите сделать пожалуйста надо завтра сдавать.=( Задача 1. Написать программу,которая вводит с...

Написать программу, которая считает число слов в предложении, начинающихся на заданную букву
Написать программу, которая считает число слов в предложении, начинающихся на заданную букву.

2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11890 / 7263 / 1720
Регистрация: 25.07.2009
Сообщений: 13,292
07.07.2015, 17:26 2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define ELEMENTS (32)
#define ATTEMPTS (1000)
#define MINVALUE (0)
#define MAXVALUE (100)
 
#define bounded_rand(minval, maxval) ( rand() % ((maxval) - (minval) + 1) + (minval) )
 
int * binary_search(const int * array, const size_t count, const int value, size_t * steps) {   
    ++(*steps);
    
    if ( count == 0 )
        return NULL;
    else if ( value == array[count / 2] )
        return (int*)(array + count / 2);
    else if ( value < array[count / 2] )
        return binary_search(array, count / 2, value, steps);
    else
        return binary_search(array + count / 2 + 1, count / 2 - (! (count & 1)), value, steps);
}
 
int cmp(const void * a, const void * b) {
    return *(int*)a - *(int*)b;
}
 
int main(void) {
    int array[ELEMENTS], i;
    size_t allSteps;
    
    srand(time(NULL));
    
    for ( i = 0; i < ELEMENTS; ++i )
        array[i] = bounded_rand(MINVALUE, MAXVALUE);
    qsort(array, ELEMENTS, sizeof(int), cmp);
    
    
    allSteps = 0;
    for ( i = 0; i < ATTEMPTS; ++i ) {
        size_t currentSteps = 0;
        binary_search(array, ELEMENTS, bounded_rand(MINVALUE, MAXVALUE), &currentSteps);
        allSteps += currentSteps;
    }
    
    printf("Average steps: %.3f\n", (double)allSteps / ATTEMPTS);
    
    /*
    for ( i = 0; i < ELEMENTS; ++i )
        printf("%d ", array[i]);
    printf("\n");
    
    while ( printf("> ") && scanf("%d", &i) == 1 ) {
        int * found;
        allSteps = 0;
        found = binary_search(array, ELEMENTS, i, &allSteps);
        if ( found )
            printf("Found with index %d", found - array);
        else
            printf("Not found");
        printf(" after %d steps.\n", allSteps);
    }
    */
    
    return 0;
}
2
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 25
28.11.2015, 20:59 3
Пожалуйста кто-нибудь может комментарии добавить где что делается?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2015, 20:59
Помогаю со студенческими работами здесь

Написать программу которая вычисляет среднее арифметическое ненулевых элементов массива
Написать программу которая вычисляет среднее арифметическое ненулевых элементов массива Mэлементы...

Написать программу, которая вычисляет среднее арифметическое элементов двумерного массива.
Написать программу, которая вычисляет среднее арифметическое элементов двумерного массива. Массив...

Написать программу которая вычисляет среднее арифметическое нулевых элементов массива M[1..10]
Написать программу которая вычисляет среднее арифметическое нулевых элементов массива M

Написать программу, которая вычисляет среднее арифметическое элементов двумерного массива
Написать программу, которая вычисляет среднее арифметическое элементов двумерного массива без учёта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru