Zdrojové kódy pro vývojáře.
Skip Navigation Links. Top 10 přispěvatelů
UživatelČlánky
codeshare49
sochor1
stoupa1
tomas.oplt11
Článek: Algoritmus - rychlost přístupu do pole přes ukazatele a bez ukaztele
Špatný Super
Autor:
Vytvořeno:
Popularita:

Ukázka efektivity (rychlosti) přístupu do pole (array):

1) Přístup do pole bez použití ukazatelů  
2) Přístup do pole s použitím ukazatelů 
#include "stdafx.h"
#include
#include
#include
#include
#include
#include
#include
#include
 
#define SIZE 1000
#define REPEAT 10000000
typedef double tArray;
tArray targetArr[SIZE], srcArr[SIZE];
tArray *ukEnd, *ukSource; void main()
{  long int p;
 int i;
 CTime now;
 CTime after;
 CTimeSpan span;  for ( int iSrc = 0; iSrc < SIZE; iSrc++)
 {
  srcArr[iSrc] = iSrc;
 }  printf("Hit keyboard for start 1\n");
 getch();
   /* Array access without pointers*/
 // Save begin time
 now = CTime::GetCurrentTime();  for (p=0; p < REPEAT; p++)
 for (i=0; i  targetArr[i]+=srcArr[i];  after = CTime::GetCurrentTime();
 span = after - now;
 printf("Test 1 exec time %i sec\n", span.GetTotalSeconds());  
 
 printf("Hit keyboard for start 2\n");
 getch();
 
   
 /* Array access via pointers*/
 // Save begin time
 now = CTime::GetCurrentTime();  for (p=0; p< REPEAT; p++) {
 ukEnd=targetArr;
 ukSource=srcArr;
 for (i=0; i  *ukEnd++ += *ukSource++; 
 }  after = CTime::GetCurrentTime();
 span = after - now;
 printf("Test 2 exec time %i sec\n", span.GetTotalSeconds());
 getch();  for ( int iSource = 0; iSource < SIZE; iSource++)
 {
  printf("Array: %i Value: %f\n" , iSource, targetArr[iSource]);
 }
 getch(); }

 

  Na stránku 
screen  Nový příspěvek
Název  Uživatel  Datum 
Poslední návštěva: 23:32:59, 28. března 2024 První  Předchozí  0 Záznamů  Další  Poslední  

Autor článku
Jméno
Pracovní pozice
Informace
Foto

   

Počet návštěvníků:1
 
  Kontakt