1 Orden de inserción

La clasificación por inserción es adecuada para clasificar una pequeña cantidad de elementos. Pertenece al pedido original.

 

(1) Ideas:

Cada vez que seleccione un elemento A [i] y lo inserte en la parte A [1 ... i-1] que ha sido ordenada (de pequeña a grande) antes. Durante la inserción, A [i] va seguida de A [1 ... i-1] se comparan. Si se encuentra que A [i]> = A [x], inserte A [i] después de A [x] y mueva el elemento antes de insertar A [i].

 

(2) Análisis de complejidad:

(2.1) Complejidad del tiempo:

         Mejor caso: orden positivo y orden (de pequeño a grande), compare n-1 veces sin moverse. La complejidad del tiempo es O (n).

         En el peor de los casos: orden inverso (de grande a pequeño), comparar n-1 veces, mover O (n) veces. La complejidad del tiempo es O (n²).

         Caso medio: La complejidad temporal es O (n²).

(2.2) Complejidad espacial:

         O (1)

 

(3) Estabilidad:

         La ordenación por inserción consiste en insertar un elemento a la vez sobre la base de una pequeña secuencia ya ordenada. Por supuesto, al principio esta pequeña secuencia ordenada tiene solo 1 elemento, que es el primer elemento. La comparación comienza desde el final de la secuencia ordenada, es decir, el elemento que desea insertar se compara con el más grande que se ha ordenado. Si es mayor que él, se insertará directamente detrás de él, de lo contrario se buscará hacia adelante hasta que encuentre su posición. Si encuentra uno que es igual al elemento insertado, entonces el elemento insertado coloca el elemento que desea insertar después del elemento igual. Por lo tanto, el orden de los elementos iguales no ha cambiado, y el orden de la secuencia desordenada original es el orden después de la clasificación, por lo que la clasificación de inserción es estable.

 

segmento de código:

void insert_sort(int a[],int n)
{
	int i,j,tmp;

	for(i=1;i<n;i++)
	{
		tmp=a[i];		//保存当前值
		for(j=i-1;j>=0&&tmp<a[j];j--)	//tmp从后往前移,直到找到适合位置
		{
			a[j+1]=a[j];
		}
		a[j+1]=tmp;		//将值放入已找出的适当位置
	}
}

 

Supongo que te gusta

Origin blog.csdn.net/u012906122/article/details/103589480
Recomendado
Clasificación