1. 查找算法:hash(散列表)
定义:将查找的记录健值key和记录的存储位置通过一定的映射关联起来。通过健值和散列函数求出散列地址(记录的保存地址),在该出进行查找
问题:构建的散列表存在一定的冲突
解决办法:
开放地址法:将发生冲突的记录存储在开放地址中(从当前位置开始查找空闲的散列地址)
链接法:将不同健值对应相同的散列地址的记录通过指针链接起来。HASH查找
指针数组 + 链表序列
2. 排序算法: 递归排序
数据分割:将数据通过基准分割成两个序列,左侧比基准小,右侧比基准大。
递归排序:将分割好的左右序列再进行分割,从而达到排序的效果
Void Quichsort(arr,low,high)
{
Int i=low , j=high; base=a[i];
While( i< j) //遍历整个数序列
{
//从右向左查找第一个比base小的值,并移位置 While(a[j]>=base && i< j)
j--;
a[i]=a[j];
//从左向右查找第一个比base大的值,并移位置
while(a[i]<=base && i < j)
i++;
a[j]=a[i];
}
a[i]=base; //最终分割位置插入
quicksort(arr, low,i-1); //左分支递归
quicksort(arr,i+1,high); //右分支递归
}