Diccionario, tablas de pedidos, listas, principio de aplicación árbol de hash

1.1 pitón objeto de diccionario, en principio, para lograr

    Nota: un diccionario en Python es uno del tipo de datos común más, que es una colección de pares de valores clave, diccionario indexado por valores de clave asociados a la opuesta, teóricamente consulta complejidad es O (1) 

  1, la tabla hash (tablas hash)

      1. tabla hash (también llamada tabla hash), de acuerdo con el par clave-valor (Key-valor) para acceder directamente a una estructura de datos.

      2. a acceder a los registros de valor clave y un mapa de ubicación de la tabla, esta consulta es muy rápido, actualizar pronto.

      3. Y esta función de mapeo llama una función hash para almacenar una matriz de valores denominados una tabla hash. 

      4. Por la clave k para cada objeto como un argumento, por una función hash h (k), k se asigna a la h índice (k), el objeto y se almacena en esta posición.

  2, la operación específica

      se añade 1. Los datos: la clave se convierte en un número entero por una función de hash, y luego la longitud de la matriz de módulo digital, como resultado hacerse cargo del índice de matriz,
                        el valor almacenado en el número de orden para la siguiente el sujeto de una matriz de espacio.

      2. Consulta de datos: hash de tecla de función en la matriz índice correspondiente, y la matriz a la ubicación del valor adquirido.

  3, { "name": "zhangsan", "edad": 26} diccionario de cómo almacenarlo? 

      1. Por ejemplo diccionario { "name": "zhangsan", "edad": 26}, entonces su clave es el nombre del diccionario, la edad, si la función hash h ( "nombre") = 1, h ( "edad") = 3,

      2. A continuación, la clave de diccionario correspondiente se almacena en la lista corresponde a la posición de destino, [Ninguno, "zhangsan", Ninguna, 26]

  4, hash de resolución de conflictos

      

tabla de orden 1.2

  1, las características de la tabla de secuencias

      Tabla 1. Linear orden lógico consistente con el orden de la relación física entre los elementos de datos de "ubicación física adyacente" del elemento incorporado en el ordenador.

      2. Todas las entradas en la tabla de secuencia, es decir, el orden se puede acceder, pueden ser un acceso aleatorio, es decir,
          ya sea a partir de la primera entrada de las entradas de la tabla se puede acceder individualmente de acuerdo con el número de entradas (subíndice) el acceso directo.

      3. no hay necesidad de representar relaciones lógicas entre nodos y espacio de almacenamiento adicional, la utilización del almacenamiento.

      4. La tabla puede ser fácilmente almacenado en cualquiera de los nodos, velocidad de la memoria.

      desventajas:

        1) Cuando la inserción de un nuevo elemento o elementos no deseados de eliminación en la mesa, con el fin de mantener el mismo orden relativo a otros elementos, un promedio de la mitad del elemento móvil, la baja eficiencia de funcionamiento
        2) debido a la tabla secuencial ocupar los requisitos de espacio contiguos, si el pre-asignado memoria Adelanto , la longitud de la mesa cuando el cambio es grande, es difícil determinar el tamaño apropiado con espacio de almacenamiento
        3) Si asigna-pre el espacio de tabla por la longitud máxima posible de, es fácil provocar a largo plazo y la parte limitada del espacio no utilizado plenamente

  2, la lista

      1. La unidad de almacenamiento de lista es una estructura de almacenamiento físicamente no contiguas, no secuencial, el orden lógico de los elementos de datos se consigue por el puntero de enlace en el orden de la lista enlazada.

      2. La lista de una serie de nodos (cada elemento de nodo se denomina una lista enlazada), con el nodo puede ser generado dinámicamente en tiempo de ejecución.

      3. Cada nodo consta de dos partes: el campo de puntero y un campo de datos

      características:

        1) que puede ser fácilmente expandido.

        2) se puede borrar e insertar fácilmente.

  3, un diagrama esquemático de un almacenamiento de tabla de secuencia lineal   

      1. Suponiendo una mesa lineal tiene n elementos, cada elemento que representan celdas de memoria k, la dirección del primer elemento es Loc (a1), la dirección del i-ésimo elemento de Loc (AI):

      2. Loc (AI) = Loc (a1) + (i-1) * k; # en donde Loc (a1) se llama dirección de base.

        

  4, el principio de la tabla de secuencia de CRUD

# 1, la tabla de secuencia de inicialización 
    tabla de secuencia de inicialización es la tabla de orden inicializado a una tabla de secuencia vacía; la longitud longitudinal justo enfrente de la tabla de orden es 0;
 # 2, encontrar la longitud de la tabla de secuencia de 
    longitud está en la tabla de orden el número de orden de los elementos en la tabla, ya que la longitud de la tabla de datos tiene que ser modificado en las operaciones de inserción y supresión, la longitud requerida de la tabla puede ser simplemente devuelve el valor de la longitud;
 # 3, de acuerdo con el número de secuencia de 
    tablas de búsqueda en el orden de i-ésimo valor de elemento (por número buscar), si se encuentra, el valor se asigna al elemento de correo. 
    Cuando se busca el valor de i-ésimo elemento, primero debemos determinar si el número de secuencia de la válida, y si es válido, devuelve el i-ésimo elemento de valor correspondiente. 
# 4, el elemento de inserción 
    se inserta en la-ésimo i tabla de datos de posición del elemento insertado en el i-ésimo posición de la mesa e secuencia de elemento de 
    primer elemento de la i-ésima posición de la tabla de secuencia secuencialmente se mueve hacia atrás una posición y luego insertarse en el primer elemento e i posiciones, después de mover el elemento de movimiento elementos hacia adelante, 
    a saber: un primer movimiento del último elemento, el elemento penúltima del móvil, y así sucesivamente; 
    para determinar la posición de inserción antes de que el elemento de inserción es la tabla de secuencia legítima está llena, después de elemento de inserción de longitud de la tabla L -> longitud ++ ;
 # . 5, la operación de borrado 
    para borrar una tabla del i-ésimo elemento E, elimine los datos de la tabla del i-ésimo elemento, elementos necesarios después de la tabla de la i-ésimo elemento de forma secuencial un movimiento de avance, el elemento frontal sobrescribe. 
    Para los i-ésimo elemento se mueve 1 elemento se mueve a la i-ésima posición en el primer elemento de movimiento i + 2 i +1 posición, hasta que el último elemento se mueve a su ubicación anterior. 
    Para determinar si la secuencia antes de la mesa de operación de eliminación está vacía, a continuación, quitar el elemento, la longitud de la tabla L -> longitud-- ;
 # . 6, por la búsqueda de contenido 
    para encontrar la posición del elemento de datos de correo en la tabla, la cabecera puede comenzar a atravesar tabla tiene elementos. 
    Si encuentra que desea encontrar el elemento elementos iguales e, se devuelve la posición del elemento en la tabla, el índice de matriz comienza en 0. 
    El elemento de números de posición correspondiente en la tabla se corresponden con el valor debe ser incrementado en 1 subíndice de matriz, devuelve 0 si no lo encuentra. 
# 7, el primer tapón 
    tapón de cabeza, es decir, el elemento insertado en el encabezado de correo, los elementos de inserción de cabecera, elementos en la tabla tiene que ser secuencialmente desplazadas una tras, 
    y se inserta en primer lugar números de los elementos asignados a elementos e, operación de inserción después de la larga mesa L -> longitud ++ ; 
    Tenga en cuenta que el último elemento del elemento móvil de la orden de la tabla empieza a moverse, 
    si el móvil desde un primer elemento, hará que el valor del primer elemento del valor de los segundos elementos de cubierta , a continuación, después de que el segundo elemento de cambio hará que el valor de los segundos elementos 
    (primer elemento del valor original) que cubre el valor del tercer elemento, y así sucesivamente, y finalmente los elementos de inserción, los elementos restantes son el valor original de la orden el primer elemento de una tabla de valores. 
# 8, la primera punción 
    Retire la primera orden en una mesa, siempre que el orden de los elementos en la tabla a partir de los dos primeros, un movimiento secuencial hacia adelante, un valor correspondiente a una posición que cubre la parte delantera de la tabla original en el orden de los elementos 
    en el elemento de borrado para determinar si la orden antes de que la tabla está vacía, entonces el fin de eliminar la tabla de secuencia de tabla de longitud elemento de L -> longitud--;
 # 9, el tapón de extremo 
    en el extremo del elemento de inserción tabla de secuencia de entrada e, L-> Data [L-> longitud] = e; e se le asigna el valor del elemento al siguiente elemento del último elemento en la tabla de secuencia; 
    operación de interpolación cola, necesidades para determinar la tabla de secuencia está llena, después del final del orden de reproducción longitud de la tabla L -> longitud ++ ;
 # 10, la perforación de la cola 
    elimina elemento de pie de página, la simple reducción de la longitud de la tabla de secuencia 1, similar a la operación de la pila, puntero de pila superior -.
# 11, vacío tabla de secuencia de 
    la tabla de secuencia vacía es eliminar los elementos en la tabla. elementos de eliminación en la tabla de longitud de la tabla se ajusta simplemente a cero.
# 12, se determina si la tabla está vacía 
    , si la longitud de la tabla de secuencia es 0, la lista de secuencia está vacía, retorno a 1, 0 en caso contrario;
 # 13, los elementos de impresión en la tabla 
    son imprimir secuencialmente orden de los elementos en la tabla, si la tabla de secuencia está vacía el sistema emite.
Solicitar principio mesa CRUD

1.3 Lista de pitón (lista)

  1, la lista de pitón

      1. En CPython, la lista se implementa como una matriz de longitud variable.

      2. La lista de objetos en la estructura de datos en el programa C: Hay una serie de punteros a punteros almacenados elementos de la lista, y un elemento marcador cuánto se puede poner en la lista.

      3. El número de ranuras de memoria, no hay una lista de tantos elementos de la corriente, y el número de elementos en la lista len (lista) es la misma, es decir, el número de elementos reales.

      4. Sin embargo, la distribución del tamaño de las ranuras, será mayor que el número de elementos, el objetivo es evitar que los elementos añadidos son cada vez para llamar a la función para asignar memoria.

  2, C en la matriz de almacenamiento

      1. Hay que tener en cuenta: Después de definir e inicializar una matriz en la memoria asignada dos espacios, uno para las matrices de almacenamiento de variables de referencia, uno para sí misma matriz de almacenamiento. 

      2. variable de referencia matriz es sólo una referencia, la variable de referencia puede apuntar a cualquier memoria válido, solamente cuando el punto de referencia a una memoria válida antes de que se puede acceder a través del elemento de la matriz de la variable de matriz.

      3. Si queremos acceder a la matriz en su programa, sólo se puede acceder a él a través de este conjunto de variables de referencia.

      4. Los elementos de la matriz reales se almacenan en la memoria de pila (heap); variable de referencia matriz es una variable de tipo de referencia, se almacena en una pila de memoria (Stack).

  3, lista de Python operación de tiempo complejidad

      índice () O (1)

      append O (1)

      POP () O (1)

      POP (i) O (n)

      insertar (i, elemento) O (n)

      el operador O (n)

      O inversa (n)

      O negro (nlogn)

  4, las listas y tuplas comparar

      1. La lista es dinámica, el tamaño se puede cambiar (reasignación);
      2. las tuplas son inmutables, una vez creada no puede ser cambiado.
      3. tupla en la lista, y c son realización muy similares, para un gran número de elementos cuando la matriz es un puntero al objeto correspondiente, más rápido que las razones de la lista de tuplas que no se encuentran.
      4. Sin embargo, para objetos pequeños es, habrá una agrupación de objetos tupla tan pequeño, el uso repetitivo tupla también se benefician.

  5, escenarios de uso tupla

      1. la situación real de hecho hay muchos estructura de la lista de tamaño fijo, como un bidimensionales coordenadas geográficas;

      2. Además del elemento de la tupla, naturalmente, también impartir un atributo de sólo lectura;

  6, comparar la lista con el diccionario

      1. lista está ordenada, dict hay trastorno

      2. Lista de acceso por índice, el uso dict acceso con llave

      3. lista como el número de crecimiento normal con el fin de encontrar el elemento de complejidad del tiempo es O (n), dict no crece con el número de cambios, todo el tiempo el responsable de la O (1)

  7, listas y diccionarios escenarios

      1. Lista general, se puede utilizar como una cola, el uso de pila, pero en general dict función de acceso rápido, o similar, como una polimerización Estadísticas

      2. lista es registrar los datos simples y ordenadas, es uno de la clase, puede ser entendida como una matriz unidimensional.

      3. dict es un dato de grabación trastorno complejo, que es, para muchos, puede ser entendida como matrices multidimensionales.

 

Supongo que te gusta

Origin www.cnblogs.com/jiaxinzhu/p/12528831.html
Recomendado
Clasificación