Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Shukhrat_Merke
0 / 0 / 1
Регистрация: 21.10.2016
Сообщений: 29
1

Функция: подсчет количества сравнений чисел, выполняемых при операциях сортировки/поиска

15.02.2017, 20:44. Просмотров 824. Ответов 1
Метки нет (Все метки)

Подсчет количества сравнений чисел, выполняемых при операциях сортировки, многократного линейного и многократного бинарного поиска.Помогите написать функцию)
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2017, 20:44
Ответы с готовыми решениями:

Подсчет количества сравнений в бинарном поиске
Здравствуйте.Нужно подсчитать общее количество сравнений в бинарном поиске. #include <stdio.h>...

Подсчет количества обменов и сравнений в алгоритмах сортировки
Помогите как в алгоритмах сортировки: простыми включениями (простой вставкой),методом пузырька...

Подсчет количества сравнений алгоритма поиска
Условие задачи: Дан одномерный массив А из n элементов. Определить, существует ли элемент, равный...

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

Подсчет количества выполняемых файлов (exe, cmd, bat) в каталоге
Помогите пожалуйста выполнить задание! Необходимо создать командный файл, выполняющий подсчет...

1
mokojumbot
158 / 158 / 30
Регистрация: 09.11.2012
Сообщений: 1,008
16.02.2017, 11:57 2
Лучший ответ Сообщение было отмечено Shukhrat_Merke как решение

Решение

если я правильно понял задание..

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
#include <stdio.h>
 
/* с(expr) - сравнение*/
#define c(x) compare(x, 0)
/* cn() - возврат кол-ва сравнений */
#define cn() compare(0, 1)  
/* cr() - сброс счетчика сравнений */
#define cr() compare(0, -1)
 
unsigned compare(int cmp, int op)
{
   static unsigned countcmps = 0;
   
   if (!op)
   {
      countcmps++;
      return cmp;
   }
   
   if (op == -1) countcmps = 0;
   return countcmps;
}
 
int main()
{ 
   /* 2 сравнения */
   printf("1 > 0?: %d\n5 < 3?: %d\n5 || 3?: %d\n1 && 0?: %d\n", 
          c(1 > 0), c(5 < 3), c(5 || 3), c(1 && 1));
   
   /* кол-во сравнений */
   printf("total compares: %d, then reset: cr()\n", cn());
   
   cr(); /* сброс счетчика */
   printf("total compares: %d\n", cn());
   
   return 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2017, 11:57

Сортировке Шейкера (подсчет количества сравнений и обменов)
Здравствуйте, пожалуйста, помогите исправить ошибку в сортировке Шейкера (подсчет количества...

Дополнить процедуру сортировки подсчётом количества сравнений С
Вещественный массив состоит из значений диапазона от -5 до 5. Направление сортировки: по...

Быстрая сортировка, неправильный подсчет количества сравнений и перестановок
Сортирует верно (по убыванию элементов в строке), а кол-во сравнений и перестановок выдает ошибочно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru