optymalizacja czyszczenia tablicy

optymalizacja czyszczenia tablicy
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam tablicę 1000-elementową {4,5,2,6,7,19,0,0,0,0,...}. Pewnych n pierwszych komórek jest zapełnionych liczbami. Chcę zastąpić te liczby zerami. Którą metodą szybciej się to wykona?

Kopiuj
int a[1000]={0};

czy

Kopiuj
for (i=0; i<=(pewnego N <= od 1000); i++)
	a[i]=0;
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Ale te dwie instrukcje to zupełnie co innego. Pierwsza tworzy NOWĄ tablicę a druga wpisuje zera do starej tablicy... Co wiecej nie rozumiesz inicjalizatora talbicy bo wystarczyłoby ci:

Kopiuj
int a[1000]={};

Bo to co podajesz w klamrach to wartości dla KOLEJNYCH elementów tablicy, a jeśli jest ich za mało to reszta wypełni się 0.

  • Rejestracja: dni
  • Ostatnio: dni
0

Wiem że to co innego, ale zależy mi na tym żeby stare wartości nie zostały w tablicy. Które się szybciej wykona?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Ale rozumiesz że opcja 1 NIE KASUJE żadnych danych tylko tworzy NOWĄ tablicę? I jeśli już gdzieś miałeś w tym zasięgu deklarację tablicy 'a' to w ogóle nie będziesz mógł tego wykonać? A jeśli była w innym zasięgu to ta deklaracja tylko przykryje starą tablicę (ale nadal będzie ona istnieć w pamięci i czekać na lepsze czasy)... Oba wykonają się tak szybko że trudno tutaj mówić o jakiejś optymalizacji bo to tylko 1000 elementów, ale zapewne szybciej będzie stworzyć nową tablicę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.