Algoritmo preliminar (2): presente en detalle los detalles y la complejidad temporal de la ordenación por inserción

Í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

 Capítulo 2 Algoritmo preliminar (2): Introduzca en detalle los detalles y la complejidad del tipo de inserción

 Capítulo 3  Algoritmo preliminar (3): Explicación e implementación del método de bisección (lenguaje C) y la aplicación de la luz de bisección en matrices ordenadas 


Tabla de contenido

Índice de contenidos de los artículos de la serie.

prefacio

1. Introducción a la ordenación por inserción (con ejemplos)

2. ¿Por qué la ordenación por inserción y la ordenación por burbuja (selección) son diferentes?

Resumir


prefacio

       ¿Repasemos de qué hablaba el artículo anterior? Describe la complejidad del tiempo y la complejidad del espacio adicional . En la complejidad del tiempo, describe cómo comparar el proceso del algoritmo cuál es más rápido e introduce la clasificación por selección . Si desea ver el primer capítulo, haga clic en : Algoritmo: comprenda la complejidad del tiempo a través de un algoritmo de clasificación simple  para mirar.

       A continuación, el editor introducirá otro tipo: tipo de inserción . La clasificación por inserción no es muy clara para el editor. No estoy familiarizado con la clasificación por burbujas y la clasificación por selección. A través del estudio de hoy, lo comprenderé y profundizaré. Espero que este blog pueda mostrar la esencia de lo que he aprendido.


1. Introducción a la ordenación por inserción (con ejemplos)

       La clasificación por inserción no es tan estúpida como la clasificación por burbujas y la clasificación por selección , pero aún requiere algunas habilidades. Mire la imagen a continuación: Todavía usando el gráfico de Where Do Heroes Come From: ( Algoritmo escrito por el jefe de Where Do Heroes Come From ).

       La clasificación por inserción es básicamente una comparación entre 0 y j , comparando el número en la posición j con el número menor que la posición j , y si es menor / mayor que él, intercambie números , como se puede ver claramente en la figura anterior . La implementación del código es la siguiente:

for (int i = 0; i < n -	1; i++) //做到有序
{
	for (int j = i ; j >= 0 && arr[j + 1] < arr[j]; j--)  //j+1位置的数永远是要处理的数
	{
        //这种交换方式在后面进行讲解
        //arr[j] = arr[j] ^ arr[j + 1];
		//arr[j + 1] = arr[j] ^ arr[j + 1];
		//arr[j] = arr[j] ^ arr[j + 1];
        //交换变量
		int temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
	}
}

2. ¿Por qué la ordenación por inserción y la ordenación por burbuja (selección) son diferentes?

       La complejidad temporal de la clasificación por selección y la clasificación por burbujas es completamente irrelevante para el estado de los datos . Es un proceso estricto y no importa cuál sea el estado de los datos, es necesario operarlos .

       Por ejemplo: clasificación de selección , el primer paso es de 0 a N-1, no importa cuál sea el estado de los datos, debe realizarse nuevamente, y luego se realiza el segundo paso, y luego... no importa si los datos El estado es bueno o malo, la complejidad del tiempo no ha cambiado . Lo mismo ocurre con la clasificación de burbujas : la comparación entre dos números es entre 0 y N, independientemente de la condición de los datos.

La complejidad temporal         de la ordenación por inserción está relacionada con la condición de los datos .

       Por ejemplo: use datos en el peor de los casos : 7 6 5 4 3 2 1 , la complejidad temporal de la ordenación por inserción es O(N^2) , si usa datos ordenados : 1 2 3 4 5 6 7 , solo compare los número anterior con el siguiente número, sin intercambiar , la complejidad temporal de la ordenación por inserción es O(N).

       Del contenido del primer capítulo, podemos ver que la complejidad temporal de la ordenación por inserción es O (N ^ 2), aunque la complejidad temporal es la misma que la de los otros dos tipos, la operación de ordenación por inserción en el nivel constante es más rápido que el de los dos. La clasificación es mejor porque no todos los datos son el peor de los casos. 


Resumir

       Lo anterior es de lo que hablaré hoy. Este artículo presenta el tipo de inserción y su complejidad temporal. Espero que comenten después de leerlo. ¡Gracias a todos!

Supongo que te gusta

Origin blog.csdn.net/2301_77868664/article/details/131936581
Recomendado
Clasificación