Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2008, 16:38   #1
Cyberbest
Пользователь
 
Регистрация: 19.04.2008
Сообщений: 13
Вопрос измерить время сортировки

ребят, вот у мну код обменной сортировки
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{  //обменная сортировка//

  DWORD start=GetTickCount();
  for (i=0;i<n;i++)
  NP[i]=StrToInt(StringGrid1->Cells[i][0]);
  for (i=0;i<n;i++) P[i] = NP[i];
  for (j=0; j<n; j++)
   for (i=0;i<n-j-1; i++)
    if (P[i]>P[i+1])
      {
       b=P[i];
       P[i]=P[i+1];
       P[i+1]=b;
      }
  Edit1->Text=FloatToStr((GetTickCount()-start)/1000.);
  for (i=0;i<n;i++)
  StringGrid2->Cells[i][0]=FloatToStr(P[i]);
}
и вот код сортировки выбором
Код:
//Сортировка выбором//
  DWORD start=GetTickCount();
  for (i=0;i<n;i++)
   NP[i]=StrToInt(StringGrid1->Cells[i][0]);
   for (i=0;i<n;i++) P[i] = NP[i];
    for (j=0; j<n; b=P[n-j-1],P[n-j-1]=P[nom],P[nom]=b,j++)
     for (maxx=P[0], nom=0, i=1; i<n-j;i++)
      if (P[i]>maxx)
      {
       maxx=P[i]; nom=i;
      }
       for (i=0; i<n; i++)
       Edit1->Text=FloatToStr((GetTickCount()-start)/1000.);
     for (i=0;i<n;i++) StringGrid2->Cells[i][0]=FloatToStr(P[i]);
Мне надо измерить время сортировки каждым методом, но я вроде измеряю еще время чтения чисел из массива! в общем лишнее время получается! подправьте код плиз, чтобы измерялась только сортировка и если можно - то сделайте это с помщью таймера, а не так как у меня! зарание спасибо
Cyberbest вне форума Ответить с цитированием
Старый 01.05.2008, 19:30   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Cyberbest Посмотреть сообщение
Мне надо измерить время сортировки каждым методом, но я вроде измеряю еще время чтения чисел из массива! в общем лишнее время получается!
Что значит "лишнее"!? Затраты на доступ к памяти всегда входят в оценку эффективности и скорости алгоритмов.

Цитата:
Сообщение от Cyberbest Посмотреть сообщение
подправьте код плиз, чтобы измерялась только сортировка и если можно - то сделайте это с помщью таймера, а не так как у меня! зарание спасибо
GetTickCount - тоже своего рода таймер. Посмотрите вот здесь:
http://programmersforum.ru/showthread.php?t=18009
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу сортировки Arsenal777 Помощь студентам 1 16.06.2008 16:46
Вывод сортировки MaXiS Общие вопросы Delphi 5 19.05.2008 08:48
Сортировки в БД. Шурик БД в Delphi 4 15.05.2007 17:45