Índice de contenidos de los artículos de la serie.
Capítulo 1 Algoritmo preliminar (1): Comprender la complejidad del tiempo a través de un algoritmo de clasificación simple
Tabla de contenido
Índice de contenidos de los artículos de la serie.
1. ¿Qué es la complejidad del tiempo?
Operación en tiempo constante:
2. ¿Cuál es la complejidad del espacio adicional?
prefacio
Como todos sabemos, los algoritmos son algo que los programadores deben aprender , y el editor es un novato, así que dejaré volar al estúpido pájaro primero. En esta serie, describiré mi experiencia personal de aprendizaje de algoritmos y registraré todo lo que he aprendido. ¡Espero que los amigos que lean este artículo trabajen juntos!
Al estudiar algoritmos de búsqueda en Internet, hay un tipo grande (de dónde viene el héroe) que también comienza con la clasificación, y yo también aprenderé apropiadamente de las notas del tipo grande.
1. ¿Qué es la complejidad del tiempo?
Antes de comprender la complejidad del tiempo, primero presentamos un conocimiento: operación en tiempo constante .
1.1 Operaciones en tiempo constante:
Cuando escribimos código, escribiremos algunas instrucciones. Estas instrucciones no tienen nada que ver con la cantidad de datos y son una operación de tiempo fijo . Esta es una operación de tiempo constante.
Algunas operaciones de expresión , direccionamiento de matrices , tomar un número de una matriz , etc.
Después de comprender las operaciones de tiempo constante, comprendamos la complejidad del tiempo mediante la clasificación .
1.2 Complejidad del tiempo:
1.2.1 Clasificación:
Primero, expliquemos el algoritmo de clasificación por selección. La clasificación por selección debería ser la más simple. A continuación se muestra una animación (se basa en el origen de los héroes). (¿ De dónde viene el héroe ?)
Al calcular la complejidad del tiempo, generalmente se considera el peor paso ( se realizan todos los pasos ) . En orden de selección,
int main()
{
int n = 0;
scanf("%d", &n);
int arr[10000];
int minIndex = 0;
int temp = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
for (int i = 0; i < n; i++)
{
minIndex = i;
for (int j = i + 1; j < n; j++)
{
if (arr[minIndex] > arr[j])
{
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
Para juzgar la calidad del tiempo de un algoritmo, (1) primero observe los indicadores de complejidad del tiempo de los dos algoritmos: si la complejidad del tiempo de los procesos de los dos algoritmos es la misma, entonces (2) ejecútelo con una muestra con una gran cantidad de datos y veras que el tiempo es menor. También existe una brecha en el tiempo fijo para operaciones constantes.
2. ¿Cuál es la complejidad del espacio adicional?
La complejidad del espacio adicional es la cantidad de espacio adicional solicitado por el proceso durante la ejecución .
Resumir
Hablaré de lo anterior hoy. Este artículo solo presenta brevemente la complejidad del tiempo y la complejidad del espacio adicional. Espero que dejéis comentarios después de leerlo, ¡gracias a todos!