la ordenación Shell

la teoría de algoritmos

Ordenar Cher Nombre (de Shell) se deriva de su inventor Donald Shell, el algoritmo es uno de los primeros algoritmo de tiempo cuadrática para romper la barrera, sin embargo, hasta varios años después de que fue encontrado originalmente prueba de su sub tiempo cuadrática obligado. Funciona mediante la comparación de los elementos de separación de un intervalo predeterminado; cada distancia de viaje utilizado en la comparación con el algoritmo de la distancia disminuye, hasta sólo el viaje en el último comparadores elementos de clasificación adyacentes. Por esta razón, a veces llamado Cher tipo reducido tipo incrementales (incremento disminuyendo especie)

algoritmo gráfico

image.png

template <typename T>
void shellSort(vector<T> & v)
{
	for (int gap = v.size() / 2; gap > 0; gap/=2)
	{
		// 插入排序代码
		for (int i = gap; i < v.size(); i++)
		{
			T tmp = v[i];
			int j = i;
			for (; j >= gap && v[j - gap] > tmp; j -= gap)
			{
				v[j] = v[j - gap];
			}
			v[j] = tmp;
		}
	}
}

complejidad del tiempo

Preferiblemente: O (n)
peor: O (nlog2n)
media: O (nlog2n)

Liberadas nueve artículos originales · ganado elogios 1 · vistas 28

Supongo que te gusta

Origin blog.csdn.net/qq_43479736/article/details/105082481
Recomendado
Clasificación