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); //右分支遞歸
}