Estructura de datos (6) -Buscar y ordenar

Encontrar


Notas personales, intrusión


La búsqueda binaria también se llama búsqueda binaria.

El debe preguntarEstructura de almacenamiento secuencialY requiereOrdenado

Inserte la descripción de la imagen aquí

int Search_Bin(SSTable ST,KeyType key)
{
	low=1;
	high=ST.length;
	while(low<=high)
	{
		mid=(low+high)/2;
		if(ST.R[mid].key==key) return mid;
		else if(ST.R[mid]>key) high=mid-1;
		else low=mid+1; 
	}
	return 0;	
}

Inserte la descripción de la imagen aquí

Árbol de arreglo binario

Las características del árbol de clasificación binaria: todos los subárboles de la izquierda son más pequeños que el nodo raíz, todos los subárboles de la derecha son más grandes que el nodo raíz y el subárbol también es un árbol de clasificación binario.
Inserte la descripción de la imagen aquí

declaración

typedef struct
{
	KeyType key;		//关键字域
	InfoType otherInfo;	//其他数据项
}ElemType;
typedef strcut BSTnode;
{
	ElemType data;
	struct BSTnode *lchild,*rchild;
}BSTndoe,*BSTree;

insertar

void InsertBST(BSTree &T,ElemType e)
{
	if(!T)
	{
		BSTree S=new BSTree;
		S->data=e;
		S->lchild=S->rchild=NULL;
		T=S;
	}
	else if(e.key>T->data.key) InsertBST(T->rchild,e);
	else InsertBST(T->lchild,e);
}

crear

void CreatBST(BSTree &T)
{
	T=NULL;
	cin>>e;
	while(e.key!=ENDFLAG)
	{
		InsertBST(T,e);
		cin>>e;
	}
}

Árbol binario equilibrado

El rendimiento de búsqueda de un árbol de ordenación binaria depende de la estructura del árbol de ordenación binaria y la forma del árbol binario depende del conjunto de datos

Si está ordenado, la complejidad del tiempo de búsqueda es O (n). Si la estructura es razonable, la complejidad del tiempo de búsqueda es O (log 2 n). De hecho, cuanto menor es la altura del árbol, más rápida es la búsqueda. Por tanto, se propone un árbol binario equilibrado, también conocido como árbol AVL.

Un árbol binario balanceado o un árbol vacío tiene las siguientes características:
(1) El valor absoluto de la diferencia entre la profundidad de los subárboles izquierdo y derecho no excede 1
(2) Los subárboles izquierdo y derecho también son árboles binarios balanceados

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí


Método de ajuste de equilibrio del árbol binario equilibrado

Obviamente, construir un árbol en un árbol binario balanceado conduce a la eficiencia de búsqueda.
Entonces, cómo convertir un árbol binario desequilibrado en un árbol binario balanceado:

Si el factor de equilibrio (Factor de equilibrio, BF) de un nodo en un árbol binario se define como la
diferencia entre la profundidad de los subárboles izquierdo y derecho del nodo, entonces el factor de equilibrio de todos los nodos en el árbol binario equilibrado solo puede encontrar -1, 0 y 1. Siempre que
el valor absoluto del factor de equilibrio de un nodo en el árbol binario sea mayor que 1, el árbol binario está desequilibrado

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí


Inserte la descripción de la imagen aquí


Inserte la descripción de la imagen aquí


Inserte la descripción de la imagen aquí


¿Cuál es el significado del orden M en el árbol B?

Inserte la descripción de la imagen aquí


Inserte la descripción de la imagen aquí


Fondo de árbol B

Inserte la descripción de la imagen aquí


Segundo método de detección

túnel del tiempo


continuará. . . (2021/1/16)

Supongo que te gusta

Origin blog.csdn.net/Touale/article/details/112709667
Recomendado
Clasificación