Vector (informatica)

De Wikipedia, le encyclopedia libere
Saltar a: navigation, cercar
Matrice unidimensional con 10 elementos.

In programmation, un matrice o vector (appellate in anglese array) es un zona de immagazinage continue, que contine un serie de elementos del mesme typo, le elementos del matrice. Ab le puncto de vista logic un matrice pote ser vidite como un ensemble de elementos ordinate in fila (o filas e columnas si illo habe duo dimensiones).

In principio, on pote considerar que tote le matrices son de un dimension, le dimension principal, ma le elementos de dicite fila pote esser a su vice matrices (un processo que pote esser recursive), lo que nos permitte parlar del existentia de matrices multidimensional, benque le plus facile de imaginar son los de un, duo e tres dimensiones.

Iste structuras de datos son adequate pro situationes in le quales le accesso al datos se realisa de forma aleatori e impredicibile. Al contrario, si le elementos pote se trovar ordinate e on va a utilisar accesso sequential esserea plus adequate utilisar un lista, durante que iste structura pote cambiar de mesura facilemente durante le execution de un programma.

Indices[modificar | modificar fonte]

Tote vector se compone de un determinate numero de elementos. Cata elemento es referentiate per le position que illo occupa intra le vector. Dicite positiones son appellate indice e sempre son correlative. Il ha tres formas de indexar le elementos de un matrice:

  • Indexation base-zero (0): In iste modo le prime elemento del vector es le componente zero ('0') del mesme, in altere parolas, habe le indice '0'. In consecuencia, si le vector habe 'n' componentes le ultime habera como indice le valor 'n-1'. Le linguage C es un exemplo typic que utilisa iste modo de indexation.
  • Indexation base-un (1): In iste forma de indexation, le prime elemento del matrice habe le indice '1' e le ultime habe le indice 'n' (pro un matrice de 'n' componentes).
  • Indexation base-n (n): Iste es un modo versatile de indexation in le qual le indice del prime elemento pote esser seligite liberemente, in alcun linguages de programmation on permitte que le indices pote esser negative e incluse de qualcunque typo scalar (anque catenas de characteres).

Notation[modificar | modificar fonte]

Le representation de un elemento in un vector se face per le identificator del vector sequite del indice inter parentheses quadrate, parentheses o claves:

Notation Exemplos
vector[indice_1,indice_2...,indice_N] (Java, Lexico, Perl, etc.)
vector[indice_0][indice_1]...[indice_N] (C, C++, PHP, etc.)
vector(indice_1,indice_2...,indice_N) (BASIC)

Benque multe vices in pseudocodice e in libros de mathematica on representa los como litteras accompaniate de un subindice numeric que indica le position al qual on vole acceder. Per exemplo, pro un vector "A":

A_0, A_1, A_2, ...  (vector unidimensional)

Forma de accesso[modificar | modificar fonte]

Le forma de acceder al elementos del matrice es directe; isto significa que le elemento desirate es obtenite a partir de su indice e il non debe ir a cercar lo "elemento per elemento" (in contraposition, in le caso de un lista, pro arrivar, per exemplo, al tertie elemento il debe acceder al duo anteriores o immagazinar un punctator que permitte acceder rapidemente a iste elemento).

Pro travaliar con vectores multe vices es precise percurrer los. Isto se realisa a fortia de buclas. Le sequente pseudocodice monstra un algorithmo typic pro percurrer un vector e applicar un function 'f(...)' a cata uno del componentes del vector (le indices ab 0):

i = 0
durante_que (i < longitude)
    #Se realisa alcun operation con le vector in le i-esime position
    f(v[i])
    i=i+1
fin_durante_que

Vectores dynamic e static[modificar | modificar fonte]

Habitualmente un vector habe un quantitate fixe de memoria assignate, benque depandente del typo de vector e del linguage de programmation un vector poterea haber un quantitate variabile de datos. In iste caso, se los denomina vectores dynamic, in oposition, al vectores con un quantitate fixe de memoria assignate se los denomina vectores static.

Le uso de vectores dynamic require realisar un appropriate gestion de memoria dynamic. Un uso incorrecte del vectores dynamic, o melior dicite, un mal gestion del memoria dynamic, pote conducer a un fuga de memoria. Al utilisar vectores dynamic sempre deberea liberar le memoria utilisate quando iste jam non se va a sequer utilisante.

Linguages plus moderne e de plus alte nivello, conta con un mechanismo denominate recollector de immunditias (como es le caso de Java) que permitte que le programma decide si il debe liberar le spatio reguardante si se va a utilisar in le futuro o non un determinate objecto.

Exemplos in C[modificar | modificar fonte]

  • Declaration in C/C++ de un vector static.
int v[5];
int i;
for (i=0 ; i<5 ; i++)
{	v[i] = 2*i;
}
  • Declaration in C++ de un vector de STL:
#include <vector>
 
vector<int> v; // Si on non specifica le mesura initial es 0
 
for (int i=0 ; i<5 ; i++)
{	v.push_back(2*i); // inserta un elemento al fin del vector
}

Le exemplo anterior se trova facite pro le linguage C++. In C, pro crear vectores dynamic on deberea utilisar le instructiones malloc e realloc pro reservar memoria de forma dynamic (vider libreria stdlib.h), e le function per free pro liberar le memoria utilisate.

  • Resultato:
0 1 2 3 4
0 2 4 6 8

Le resultato del duo exemplos es le mesme vector

Vectores multidimensional[modificar | modificar fonte]

In BASIC, Java e altere linguages il es possibile declarar matrices multidimensional, comprendente los como un vector de vectores. In dicte casos in numero de elementos del vector es le producto resultante de cata dimension.

Per exemplo, que le vector v(4,1) habe 10 elementos, se calcula del sequente modo: (0-4) * (0-1). Le elementos del prime dimension del vector contine 5 elementos que va ab '0' al '4' e le 2º dimension habe 2 elementos que va ab '0' a '1'. Le elementos esserea accedite del sequente modo:

elemento 1: (0,0)
elemento 2: (0,1)
elemento 3: (1,0)
...
elemento 8: (3,1)
elemento 9: (4,0)
elemento 10: (4,1)
Logo

Iste pagina usa contento del Wikipedia in espaniol. Le articulo original se trova a es:Vector (informática), e es usate secundo le mandatos del licentia de Wikipedia.