Encontrar
Notas personales, intrusión
La búsqueda binaria también se llama búsqueda binaria.
El debe preguntarEstructura de almacenamiento secuencialY requiereOrdenado。
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;
}
Á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.
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
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
¿Cuál es el significado del orden M en el árbol B?
Fondo de árbol B
Segundo método de detección
continuará. . . (2021/1/16)