Red de conocimiento del abogados - Ley de patentes - Conocimientos básicos de aplicaciones informáticas.

Conocimientos básicos de aplicaciones informáticas.

Conocimientos básicos de aplicaciones informáticas en 2017

1.1 Estructura de datos y algoritmo

Para resolver problemas con la ayuda de computadoras, debes Primero es necesario comprender el objeto que se está procesando. La naturaleza y las características del objeto son la estructura de datos del objeto que se está operando, y luego se diseñan los métodos y pasos para resolver el problema, es decir, se diseña un algoritmo razonable, que comúnmente es conocido como "programa = algoritmo de estructura de datos".

1.1.1 El concepto básico de algoritmo

La palabra "algoritmo" surgió por primera vez de un libro de gran alcance del matemático persa Beal Khorvarison en el siglo IX d.C. Su libro ". Diálogos algebraicos". Turing, un matemático británico del siglo XX, propuso el famoso argumento de Turing y abstrajo una máquina, a la que llamamos máquina de Turing. Las ideas de Turing jugaron un papel importante en el desarrollo de los algoritmos. En términos generales, un algoritmo se refiere a una descripción de los pasos y métodos específicos necesarios para completar una tarea o resolver un problema. El algoritmo del que estamos hablando aquí se refiere al algoritmo que la computadora puede ejecutar.

1. Clasificación de algoritmos

Los algoritmos informáticos se pueden dividir en dos categorías principales, una son algoritmos de operación numérica y la otra son algoritmos de operación no numérica. Los algoritmos de operaciones numéricas buscan principalmente soluciones numéricas, como resolver ecuaciones, encontrar integrales definidas de funciones, etc. El alcance de las operaciones no numéricas es muy amplio, como gestión de personal, recuperación de libros, etc.

2. Características del algoritmo

Un algoritmo científico debe tener las siguientes características:

(1) Finitud: un algoritmo debe garantizar que finaliza después de ejecutar un algoritmo finito. número de pasos y no puede ser infinito. Esto es obvio. Además, la finitud significa que la operación finaliza dentro de un rango razonable. Si un algoritmo requiere que una computadora se ejecute durante cientos de años o más antes de finalizar, esto obviamente no es razonable.

(2) Determinismo: cada paso del algoritmo debe tener una definición exacta y no puede ser ambigua. Descripciones confusas como "un número relativamente grande" no pueden aparecer en el algoritmo.

 (3) Hay cero o más entradas

 (4) Hay una o más salidas. El propósito de un algoritmo es resolver problemas. Un algoritmo sin resultados no puede resolver ningún problema y por lo tanto no tiene sentido.

(5) Efectividad. Cada paso del algoritmo debe ejecutarse de manera eficiente y producir un resultado determinado. Por ejemplo, si n = 0, la ejecución de m/n no se puede ejecutar de manera efectiva.

3. Representación de algoritmos

Un algoritmo informático se puede representar mediante lenguaje natural, diagrama de flujo, diagrama N-S, etc.

4. Análisis de algoritmos

La tarea del análisis de algoritmos es utilizar herramientas matemáticas para discutir las diversas complejidades de cada algoritmo específico diseñado para explorar la idoneidad de un tipo de problema específico. debe usarse, o qué algoritmo debe usarse para un determinado tipo de problema.

La complejidad del algoritmo se divide en complejidad temporal y complejidad espacial.

. Complejidad del tiempo: el tiempo dedicado a ejecutar el algoritmo es f (n) (es decir, una función de n).

. Complejidad del espacio: el espacio ocupado por el algoritmo de implementación es g (n) (también una función de n).

Llame a la complejidad de este algoritmo O(f(n)) y O(g(n)).

1.1.2 Definición de estructura de datos

La estructura de datos es un término muy utilizado en el campo de la informática y la tecnología. Aunque todavía no ha tenido una definición universalmente reconocida, su contenido sí lo es. Se utiliza para reflejar la estructura interna de un dato, es decir, de qué componentes está compuesto un dato, cómo está compuesto y qué estructura tiene. Las estructuras de datos se dividen en estructuras de datos lógicas y estructuras de datos físicas. La estructura de datos lógica refleja la relación lógica entre los datos de los componentes, mientras que la estructura de datos físicos refleja la disposición de almacenamiento de los datos de los componentes dentro de la computadora. La estructura de datos es la forma en que existen los datos.

La estructura de datos es una forma de organizar la información. Su propósito es mejorar la eficiencia de los algoritmos. Generalmente corresponde a un conjunto de algoritmos, a través de este conjunto de algoritmos, se pueden procesar los datos en la estructura de datos. .algún tipo de operación.

Las estructuras de datos generales pueden utilizar los siguientes dos métodos de almacenamiento principales. La representación de almacenamiento de la mayoría de las estructuras de datos utiliza uno de estos métodos, o una combinación de los dos.

1. Estructura de almacenamiento secuencial

Este método de almacenamiento se utiliza principalmente para estructuras de datos lineales. Almacena elementos de datos lógicamente adyacentes en unidades de almacenamiento físicamente adyacentes. la relación de adyacencia de las unidades de almacenamiento.

Las principales características de la estructura de almacenamiento secuencial son: (1) El nodo solo tiene su propio dominio de información y ningún dominio de información de conexión, por lo que la densidad de almacenamiento es alta y la utilización del espacio de almacenamiento es alta (2; ) Se puede determinar directamente mediante cálculo. La dirección de almacenamiento Li del i-ésimo nodo en la estructura de datos se calcula como Li=L0 (i-1)*m, donde L0 es la dirección de almacenamiento del primer nodo y m es la unidad de almacenamiento ocupada por cada número de nodos; (3) Las operaciones de inserción y eliminación son inconvenientes y provocarán el movimiento de una gran cantidad de nodos.

2. Estructura de almacenamiento en cadena

La estructura de almacenamiento en cadena incluye al menos un campo de puntero en cada nodo y utiliza punteros para reflejar la conexión lógica entre elementos de datos. Esta estructura de almacenamiento puede almacenar dos elementos lógicamente adyacentes en unidades de almacenamiento físicamente no adyacentes; también puede representar conexiones no lineales entre nodos en la memoria de la computadora con direcciones lineales.

Las principales características de la estructura de almacenamiento en cadena son: (1) Además de sí mismo, el nodo también tiene un campo de puntero que representa información de conexión, por lo que tiene una menor densidad de almacenamiento y una menor utilización del espacio de almacenamiento que una estructura secuencial; (2) Los nodos lógicamente adyacentes no tienen que ser físicamente adyacentes y pueden usarse para la representación de almacenamiento de varias estructuras lógicas, como tablas lineales, árboles, gráficos, etc. (3) Las operaciones de inserción y eliminación son flexibles y Es conveniente y no es necesario mover los nodos, siempre que se cambie la estructura. Simplemente haga clic en el puntero.

Además de los dos métodos de almacenamiento principales anteriores, el hash también es un método de almacenamiento comúnmente utilizado en la representación de almacenamiento de tablas y conjuntos lineales.

1.1.3 Estructura de lista lineal

1. Definición de lista lineal

La lista lineal (lista lineal) es la estructura de datos más utilizada y simple. Es una secuencia finita compuesta por n (n≥0) elementos de datos (nodos) a1, a2,...,an.

① El número n de elementos de datos se define como la longitud de la tabla (cuando n = 0, se denomina tabla vacía).

② Registre la tabla lineal no vacía (n>0) como: (a1, a2,...,an)

③ El elemento de datos ai (1≤i≤ n) es simplemente un símbolo abstracto cuyo significado específico puede ser diferente en diferentes situaciones.

En algunas tablas lineales más complejas, un elemento de datos puede estar compuesto por varios elementos de datos. En este caso, los elementos de datos generalmente se denominan registros y la tabla lineal que contiene una gran cantidad de registros también se denomina archivo.

Ejemplo 1 El alfabeto inglés (A, B,...,Z) es una tabla lineal, y cada letra de la tabla es un elemento de datos (nodo). Ejemplo 2 El número de puntos en un. la baraja de naipes (2, 3 ,...,10,J,Q,K,A) también es una tabla lineal, en la que el elemento de dato es el número de puntos de cada carta

2 Almacenamiento de mesa lineal

La mesa lineal puede utilizar almacenamiento secuencial y almacenamiento en cadena. Las matrices unidimensionales en varios lenguajes de alto nivel son tablas lineales almacenadas de manera secuencial, por lo que las matrices unidimensionales a menudo se denominan tablas secuenciales. El objeto de lista lineal que se analiza principalmente a continuación se refiere a la lista de secuencia.

3. Operaciones básicas de las tablas lineales

Una tabla lineal es una estructura de datos muy flexible. No solo se pueden buscar y acceder a sus elementos de datos, sino que también se puede aumentar su longitud. Si es necesario, más grande o más pequeño, puede insertar y eliminar elementos de datos en la tabla lineal.

Operaciones básicas comunes de tablas lineales

(1) InitList (L)

Construya una tabla lineal vacía L, que es la inicialización de la tabla.

(2) ListLength (L)

Encuentre el número de nodos en la lista lineal L, es decir, encuentre la longitud de la lista.

(3) GetNode (L, i)

Obtiene el i-ésimo nodo en la lista lineal L, aquí se requiere que 1≤i≤ListLength (L)

 (4) LocateNode(L, x)

Encuentre el nodo con valor x en L y devuelva la posición del nodo en L. Si hay varios nodos en L con el mismo valor que x, se devuelve la posición del nodo encontrado por primera vez; si no hay ningún nodo en L con el valor x, se devuelve un valor especial para indicar que la búsqueda falló; .

(5) InsertList (L, x, i)

Inserta un nuevo nodo con un valor de x en la i-ésima posición de la lista lineal L, de modo que el original El número es i, los nodos de i 1,...,n se convierten en nodos numerados i 1,i 2,...,n 1. Aquí 1≤i≤n 1, y n es la longitud de la tabla original L. Después de la inserción, la longitud de la mesa L aumenta en 1.

(6) DeleteList (L, i)

Elimina el i-ésimo nodo de la lista lineal L para que los nodos originales sean i 1, i 2,..., n se convierte en un nodo numerado i, i 1,..., n-1. Aquí 1≤i≤n, y n es la longitud de la tabla original L. Después de la eliminación, la longitud de la tabla L se reduce en 1. Para la implementación específica del programa, consulte los capítulos relevantes del lenguaje C en este libro.

1.1.4 Estructura de pila y cola

1. Definición de pila y cola

Una pila es un tipo que limita las operaciones de inserción y eliminación a un solo extremo. de la mesa. El extremo que permite las operaciones de inserción y eliminación se denomina parte superior de la pila, y el otro extremo se denomina parte inferior de la pila. La lista vacía sin elementos se denomina pila vacía. La inserción y la eliminación se denominan push y pop respectivamente. Dado que la inserción y eliminación solo se pueden realizar en el mismo extremo, el elemento que ingresa antes a la pila debe compararse antes de sacarse de la pila. En particular, la primera persona en ser empujada hacia la pila será la última en salir de la pila, mientras que la última persona en ser empujada hacia la pila será la primera en salir de la pila. Por lo tanto, la pila también se denomina tabla lineal Último en entrar, primero en salir (Último en entrar, primero en salir), o tabla LIFO para abreviar. ;