
B树
通过动画可视化算法B+树
二分查找/折半查找
封闭hash查找(封闭散列寻址)
Open哈希表(封闭寻址)算法动态图例结合代码全程展示
动画可视化之顺序查找 ×


动画可视化之顺序查找 ×
typedef struct{ //查找表的数据结构(顺序表)
ElemType *elem; //动态数组基址
int TableLen; //表的长度
}SSTable;
//顺序查找
int Search_Seq(SSTable ST, ElemType key){
int i;
for(i=0; i<ST.TableLen && ST.elem[i]!=key; ++i);
//查找成功,则返回元素下标;查找失败,则返回-1
return i==ST.TableLen? -1 : i;
}
typedef struct{ //查找表的数据结构(顺序表)
ElemType *elem; //动态数组基址
int TableLen; //表的长度
}SSTable;
//顺序查找
int Search_Seq(SSTable ST, ElemType key){
ST.elem[0]=key; //“哨兵”
int i;
for(i=ST.TableLen; ST.elem[i]!=key; --i); //从后往前找
return i; //查找成功,则返回元素下标;查找失败,则返回0
}



二分查找/折半查找




typedef struct{ //查找表的数据结构(顺序表)
ElemType *elem; //动态数组基址
int TableLen; //表的长度
}SSTable;
//折半查找
int Binary_Search(SSTable L, ElemType key){
int low=0, high=L.TableLen-1, mid;
while(low<=high){
mid=(low+high)/2; //取中间位置
if(L.elem[mid]==key)
return mid; //查找成功则返回所在位置
else if(L.elem[mid]>key)
high=mid-1; //从前半部分继续查找
else
low=mid+1; //从后半部分继续查找
}
return -1; //查找失败,返回-1
}
//折半查找,又称“二分查找”,仅适用于有序的顺序表。
//顺序表拥有随机访问 的特性,链表没有


B树




B树


封闭hash查找(封闭散列寻址)

Open哈希表(封闭寻址)算法动态图例结合代码全程展示
封闭hash查找(封闭散列寻址)