1. Pascal / Говнокод #1122

    +93.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    SetTime(0,0,0,0);  {засекаем время, т.е. устанавливаем системное время равным
                        0 ч 0 мин 0.00 сек   }
    {NumDist - число расматриваемых расстояний
    i - индекс элемента массива расстояний,
    количество групп всегда равно расстоянию d,
    CurGroup - номер сортируемой группы}
    For i:=1 to NumDist do
      begin
        d:=dist[i];
        For CurGroup:=1 to d do
          InsertSort(d,CurGroup);
      end;
    GetTime(hour,minute,second,hund);   {Получаем время сортировки}

    Говнокод для измерения времени работы алгоритма.
    Источник - http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0% BE%D0%B2%D0%BA%D0%B0_%D0%A8%D0%B5%D0%BB% D0%BB%D0%B0

    В лучших индусских традициях, виват!

    Запостил: guest, 01 Июня 2009

    Комментарии (5) RSS

    • SetTime(0, 0, 0, 0) ето не ок.
      Ответить
    • Сан Саныч:
      [quote=Говногость]SetTime(0, 0, 0, 0) ето не ок.[/quote]Абсолютно согласен. Зачем сбрасывать системное время, если можно сравнить время на компе в начале и в конце работы алгоритма?
      Ответить
    • К. О.:
      Время на компе врет, потому что многозадачность. GetPricessTimes так то.
      Ответить
    • Время на компе врет еще и потому, что системный таймер тикает около 17 раз в секунду (приблизительно), то есть через обычный GetTime не померяешь время работы точнее периода 1/17 секунды.

      Правильно исвользовать QueryPerformanceCounter, мультимедийные таймеры или инструкцию процессора RDTSC (для очень точных измерений).
      Ответить
    • На каждом ядре свой точный счётчик. Учитывайте то, что поток(даже если он один) может исполняться на разных ядрах и время будет "неадекватно".
      ЗЫ Надеюсь это кому-либо поможет избежать гемора.
      Ответить

    Добавить комментарий