Форум программистов, компьютерный форум CyberForum.ru

Время выполнения алгоритма - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как вывести буквы, цифры на экран? http://www.cyberforum.ru/cpp-beginners/thread335169.html
как написать чтоб по введенному с клавиатуры символу прога понимала что это,цифра,знак или буква? Может с помощью <<cin ? И как тогда задать єти символы? Буду очень благодарен за маленький пример
C++ Небольшая проблемка с прогой. Здравствуйте! возникла проблема. По идее програ должна брать рандромные слова из файлов и выводить их на экран. #include <iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> using namespace std; int counter1=0,counter2=0,counter3=0,randvalue1,randvalue2,randvalue3; http://www.cyberforum.ru/cpp-beginners/thread335145.html
C++ Скорость доступа к элементам вектора
Всем привет! Использую вектор и интеерсует вопрос скорости выбора элементов из него. У вектора есть метод vector.at(int index), который вернет мне элемент по заданному индексу. Также к вектору можно добраться через итераторы. ПО идее через итераторы доступ должен быть быстрее, но на практике выходит что доступ через vector.at(int index) быстрее минимум в 3 раза на векторе в 512 элементов....
Проблема с рандомом + помощь в создании алгоритма C++
Такая штука - делаю одну прогу (игра напоминающая бомбермен)... Решил отдельнонаписать прожку в которой юзер начинает матч - боты сами ходят и коцают друг друга ... ПРОБЛЕМА, только и заключаеться в том, что движения их порой вызываю подозрения - наблюдаеться некая синхронность... Подскажите пожалуйста в чем проблема + подкиньте плз идею того, как реализовать движения ботов в соответствии с...
C++ Из цифр в буквы http://www.cyberforum.ru/cpp-beginners/thread335039.html
Скажите как перейти из цифрового номера буквы в ANSI обратно в букву. Как букву в цифру превратить я знаю cout<<(int)'A';
C++ Решение суммы ряда Не раз видел задачки типа "Дано вещественное число Х и целое число N (>0).Найти значение выражения 1-х^2/(2!)+x^4/(4!)-...+(-1)^n*X^(2*n)/((2*N)!) (N!=1*2*...*N). ... " , не понимал и откладывал в "дальний угол". Т.в. прошу, объясните подробно, как их решать? На что смотреть в первую очередь? Как я понимаю формула строится по последней части (...+(-1)^n*X^(2*n)/((2*N)!)), скорее всего я не... подробнее

Показать сообщение отдельно
ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361

Время выполнения алгоритма - C++

21.07.2011, 20:05. Просмотров 1569. Ответов 15
Метки (Все метки)

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
68
69
70
71
72
73
#include <iostream>
#include <cstdlib>
#include <time.h>
 
 
using namespace std;
 
void heapSort(int *a, int size) ;     // функции которые реализуют пирамидную сортировку
void downHeap(int *a, int k, int n);
 
int main() {
  time_t rawtime, iop;
  struct tm *timeinfo, *mop;
  setlocale( LC_ALL,"Russian" ); 
  const int r = 5; // размер массива
  int i;
  int mas1[r];
  for(i = 0; i < r; i++) mas1[i] = rand(); // функция rand генерирует случайные числа
  cout << "Инициализируем массив случайными числами: ";
  for(i = 0; i < r; i++) cout << mas1[i] << ' ';
  cout << '\n';
  time(&rawtime);
  timeinfo = localtime(&rawtime);
  heapSort(mas1,r); // сортируем массив используя алгоритм пирамидной сортировки 
  time(&iop);
  mop = localtime(&iop);
  cout << "Время: " << mop->tm_sec - timeinfo->tm_sec << '\n';
  cout << "Сортируем массив используя алгоритм пирамидной сортировки: ";
  for(i = 0; i < r; i++) cout << mas1[i] << ' ';
  cout << '\n';
  return 0;
}
 
 
void heapSort(int *a, int size) {
  int i;
  int temp;
 
  // строим пирамиду 
  for(i=size/2-1; i >= 0; i--) downHeap(a, i, size-1);
  
  // теперь a[0]...a[size-1] пирамида 
 
  for(i=size-1; i > 0; i--) {
    // меняем первый с последним 
    temp=a[i]; a[i]=a[0]; a[0]=temp;
    // восстанавливаем пирамидальность a[0]...a[i-1] 
    downHeap(a, 0, i-1); 
  }
}
 
 
 
void downHeap(int *a, int k, int n) {
  //  процедура просеивания следующего элемента 
  //  До процедуры: a[k+1]...a[n]  - пирамида 
  //  После:  a[k]...a[n]  - пирамида 
  int new_elem;
  int child;
  new_elem = a[k];
 
  while(k <= n/2) {             // пока у a[k] есть дети 
    child = 2*k;
    //  выбираем большего сына 
    if( child < n && a[child] < a[child+1] ) 
    child++;
    if( new_elem >= a[child] ) break; 
    // иначе 
    a[k] = a[child];    // переносим сына наверх 
    k = child;
  }
  a[k] = new_elem;
}
Почему не выщитывается время выполнения алгоритма? Программа показывает 0.
Использую функции time, localetime. Не пойму в чем дело?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru