Top 10 de los artículosYouTubeGmail Goole GayRomeo Números chinos Números romanos Orkut Costco Sistema porta hepático El mundo Factbook |
News: |
| Linear estructuras de datos |
|---|
|
Arsenal |
En informática arsenal es a estructura de datos consistir en un grupo de elementos eso está alcanzada cerca indexación de direcciones. En la mayoría lenguajes de programación cada elemento tiene igual tipo de datos y el arsenal ocupa un área contigua de almacenaje. La mayoría de los lenguajes de programación tienen un built-in arsenal tipo de datos.
Algunos órdenes referidos más viejas idiomas como tablas. Ésta era la práctica adentro COBOL. [1]
Una cierta ayuda de los lenguajes de programación programación del arsenal (e.g., APL, más nuevas versiones de FORTRAN) cuál generaliza operaciones y funciones para trabajar órdenes transparente excesivos como hacen con escalares, en vez de requerir a miembros excesivos de colocación de arsenal.
Órdenes multidimensionales están alcanzados usando más de un índice: uno para cada dimensión.
Los órdenes se pueden clasificar como órdenes fijo-clasificados (conocido a veces como órdenes de los parásitos atmosféricos) se ha asignado de quién tamaño no puede cambiar una vez su almacenaje, o órdenes dinámicos, que puede ser vuelta a clasificar según el tamaño.
Contenido |
Las variables almacenan normalmente solamente un solo valor pero, en algunas situaciones, es útil tener una variable que pueda almacenar una serie de valores relacionados - usar un arsenal. Por ejemplo, suponga que un programa está requerido que calculará la edad media entre un grupo de seis estudiantes. Las edades de los estudiantes se podían almacenar en seis variables de número entero en lenguaje de programación de C:
interno age1; interno age2; interno age3; …
Sin embargo, una solución mejor sería declarar un arsenal de seis elementos:
interno edad[6];
Esto crea un arsenal de seis elementos; los elementos se pueden alcanzar como edad [0] por edad [5] en la C.
(Nota: en .NET básico visual el declaración similar Edad dévil (6) como número entero creará a siete arsenal del elemento, alcanzado como edad (0) por edad (6).)
Un nuevo objeto del arsenal se crea implícito cuando se evalúa una expresión del inicializador del arsenal; esto puede ocurrir cuando se inicializa una clase o un interfaz, cuando un nuevo caso de una clase se crea, o cuando se ejecuta una declaración variable local del declaración.
Debido a sus características de funcionamiento, los órdenes se utilizan para poner otras estructuras de datos en ejecución, por ejemplo montones, tablas de hash, deques, coletas, apilados, secuencias, y VLists.
Algunos algoritmos almacenan un número variable de elementos en parte de un arsenal de tamaño fijo, que es equivalente a usar arsenal dinámico con una capacidad fija. Vea arsenal dinámico para los detalles.
Órdenes sociables proporcione un mecanismo para poner en orden-como la funcionalidad sin overheads enormes del almacenaje cuando los valores de índice son escasos. Los órdenes sociables especializados con llaves del número entero incluyen Intentos de Patricia y Órdenes de Judy.
Los valores de índice válidos de cada dimensión de un arsenal son un sistema limitado de números enteros. Los ambientes de programación que comprueban los índices para saber si hay validez se dicen para realizarse comprobación de los límites.
El índice del primer elemento (a veces llamado “origen”) varía por lengua. Hay tres puestas en práctica principales: cero-basado, uno-basado, y n-basado pone en orden, para las cuales el primer elemento tiene un índice de cero, uno, o un valor programador-especificado. El arsenal cero-basado es más natural en la raíz terminología de la informática y fue popularizado por Lenguaje de programación de C, en de que la abstracción arsenal es muy débiles, y un índice n de un arsenal unidimensional está simplemente la compensación del elemento alcanzado de la dirección de la primera (o “ceroth“) elemento (escalado por el tamaño del elemento). los órdenes Uno-basados se basan en la notación tradicional de las matemáticas para matrices y la mayoría, pero no todos, matemático secuencias. n-basado se hace disponible así que el programador está libre elegir el límite más bajo, que puede incluso ser negativo, que se satisface lo más naturalmente posible para el problema actual.
Comparación de los lenguajes de programación (arsenal), indica el índice bajo usado por varias idiomas.
Partidarios de cero-basado el poner en un índice critica a veces uno-basado y n-basado órdenes para ser más lento. Esta crítica se confunde a menudo cuando uno-basado o n-basado los accesos del arsenal se optimizan con eliminación común del subexpression (para los solos órdenes dimensionados) y/o con bien definido vectores de la droga (para los órdenes multi-dimensionados). Sin embargo, en los órdenes multidimensionales donde la compensación de la red en memoria linear se computa de todos los índices, cero-basado la indexación de direcciones es más natural, más simple, y más rápidamente. Edsger W. Dijkstra expresó una opinión en este discusión: Porqué la enumeración empiece cero.
Los 0 discusiones de based/1-based no se limitan a los lenguajes de programación justos. Por ejemplo, la planta baja de un edificio es el botón “0” del elevador en Francia, pero el botón “1” del elevador en los E.E.U.U.
Cuando el arsenal se pone en ejecución como almacenaje continuo, el acceso índice-basado, e.g. al elemento n, es hecho simplemente (para la indexación de direcciones cero-basada) usando la dirección del primer elemento y agregando n · sizeof (un elemento). Esto es tan una 1) operación de Θ (.
Pero hay los casos, donde el almacenaje continuo pudo ser una mala idea:
Los órdenes ordinarios son puestos en un índice por un solo número entero. También útil, particularmente en usos numéricos y de los gráficos, es el concepto de a arsenal multidimensional, en que ponemos en un índice en el arsenal usando una lista pedida de números enteros, por ejemplo en a[3,1,5]. El número de números enteros en la lista usada para poner en un índice en el arsenal multidimensional es siempre igual y se refiere como el arsenal dimensionalidad, y los límites en cada uno de éstos se llaman el arsenal dimensiones. Un arsenal con dimensionalidad k se llama a menudo k- dimensional. Los órdenes unidimensionales corresponden a los órdenes simples discutidos hasta el momento; los órdenes de dos dimensiones son una representación particularmente común para matrices. En la práctica, la dimensionalidad de un arsenal excede raramente de tres. Traz un arsenal unidimensional en memoria es obvio, puesto que la memoria es lógicamente sí mismo arsenal unidimensional de a (muy grande). Cuando alcanzamos órdenes alto-dimensionales, sin embargo, el problema es no más obvio. Suponga que deseamos representar este arsenal de dos dimensiones simple:
Es el más común poner en un índice este usar del arsenal RC- convención, donde los elementos se refieren adentro fila, columna manera o , por ejemplo:
Las maneras comunes de poner en un índice en órdenes multidimensionales incluyen:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | 4 | 7 | 2 | 5 | 8 | 3 | 6 | 9 |
Las primeras dos formas son más compactas y tienen lugar potencialmente mejor de la referencia, pero son también más limitadoras; los órdenes deben ser rectangular, significando que ninguna fila puede contener más elementos que cualquier otro. Los órdenes de órdenes, por otra parte, permiten la creación de órdenes desiguales, también llamado órdenes dentados, en que la gama válida de un índice depende del valor de otro, o en este caso, simplemente que diversas filas puedan ser diversos tamaños. Los órdenes de órdenes están también de valor en los lenguajes de programación que proveen solamente órdenes unidimensionales como primitivos.
En muchos usos, tales como usos numéricos que trabajan con matrices, iteramos órdenes de dos dimensiones rectangulares del excedente de maneras fiables. Por ejemplo, computando un elemento del producto de la matriz AB implica el iterar sobre una fila de A y una columna de B simultáneamente. En traz los índices individuales del arsenal en memoria, deseamos explotar el lugar de la referencia tanto como podemos. Un recopilador puede elegir a veces automáticamente la disposición para un arsenal para almacenar elementos secuencialmente alcanzados secuencialmente en memoria; en nuestro ejemplo, puede ser que elija la orden fila-principal para A, y orden columna-principal para B. Los orderings aún más exóticos pueden ser utilizados, por ejemplo si iteramos sobre diagonal principal de una matriz.
|
Custom Search
|
© Copyright 2011 WorldLingo. Reservados todos los derechos.