Estructura de datos - 1 Conceptos básicos

1 Conceptos básicos

1.1 ¿Qué es una estructura de datos

Ejemplo 2 aprobó una positivo número entero N, el orden de impresión de todas número entero positivo de 1 a N:

//递归实现
void PrintN(int N){
	if(N){
		PrintN(N-1);
		printf("%d\n",N);
	}
}

programa recursivo ocupa un gran espacio
para resolver la eficacia del método, con la eficiencia del espacio en relación con
Aquí Insertar imagen Descripción
la segunda función estándar
Aquí Insertar imagen Descripción
usando el reloj () para probar el programa de tiempo de ejecución

, sin embargo, algunos de la hora de finalización del programa pasado va a ser muy pequeña, aproximadamente igual a 0, entonces , se puede 重复ejecutar el programa

¿Qué es una estructura de datos

Aquí Insertar imagen Descripción
Estructura lógico: estructura lineal (uno a uno), árboles (uno a muchos), la figura (muchos)
estructura de almacenamiento físico: se utiliza en una matriz de ordenador o lista para ahorrar memoria vinculada

tipo de datos abstracto

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Para un flotador o doble, no se preocupan, ElementType es un tipo de

1.2 ¿Qué es un algoritmo

Aquí Insertar imagen Descripción

¿Qué es un buen algoritmo

Complejidad de tiempo T (n)

De acuerdo con el algoritmo escrito en el momento de ejecución del programa 耗费时间的长度. Esta longitud es a menudo asociada con el tamaño de los datos de entrada. Demasiado alto dará lugar no esperar los resultados.

complejidad espacio S (n)

De acuerdo con el algoritmo escrito en el momento de ejecución del programa 占用存储单元的长度. Esta longitud es a menudo asociada con el tamaño de los datos de entrada. El uso excesivo puede causar desbordamiento de memoria, haciendo que el programa se interrumpe de forma anormal.
Aquí Insertar imagen Descripción
Cada llamada recursiva ocupa una cierta cantidad de espacio de memoria para almacenar la información, pero sólo para un ciclo variable temporal y para el ciclo, no hay duda de cualquier programa de diseño llamado, por lo que ocupó el espacio es una constante.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Ejemplo:
Aquí Insertar imagen Descripción
Algoritmo 1: Ley de violencia. Tres anidada para-loop, puede llegar a ser un N . 3 * 1 constantes
Aquí Insertar imagen Descripción
se pueden ver en la figura, cuando la suma de i a j know, junto con un número en él, de modo que el ciclo k puede omitirse
Aquí Insertar imagen Descripción
en la medida posible de la n- 2 mejorado para nlogn

Algoritmo 3: divide y vencerás, en gran problemas complejos cortados en trozos pequeños, y luego se separaron para resolverlos, y finalmente se combinan los resultados de
Aquí Insertar imagen Descripcióndividirlo en dos partes, la mitad izquierda de la búsqueda recursiva de los más grandes, a la derecha búsqueda recursiva parcial más grande en el buscar el medio de algunos de los más grandes
Aquí Insertar imagen Descripción
de computación complejidad del tiempo: imaginar, cuando todo el problema resuelto, hay un número n de tiempo, si la complejidad se denota por T (N), entonces la disponibilidad de la complejidad de las cifras medias a T (N / 2), debido al tamaño reducido a la mitad.
parte intermedia Red: desde la exploración intermedia de la izquierda a la derecha y luego escanear, cada elemento 1 se escanean, la complejidad debe ser un múltiplo constante de N
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
corrección no es obvia (no se entiende)
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Publicado 16 artículos originales · ganado elogios 0 · Vistas 236

Supongo que te gusta

Origin blog.csdn.net/qq_42713936/article/details/104679842
Recomendado
Clasificación