1. 程式人生 > 實用技巧 >win10系統Word圖示變得很大很模糊如何解決

win10系統Word圖示變得很大很模糊如何解決

查詢

查詢表: 由同一型別的資料元素(或記錄)構成的集合,可以用線性表、樹表、散列表來實現

動態查詢表: 在查詢的同時對錶做修改操作(插入、刪除)

靜態查詢表: 僅查詢

平均查詢長度(ASL)----> 衡量查詢演算法的效能:ASL = P1C1+P2C2 +....+PiCi

一、線性表的查詢

(1)順序查詢

設定監視哨的順序查詢:

int Search_Seq(SSTable ST,KeyType key)
{
    ST.R[0].key=key;    //哨兵
    for(i=ST.length;ST.R[i].key!=key;--i)   //從後往前找
    return
i; }

優點:演算法簡單,對錶結構無任何要求,既適用於順序結構,也適用於鏈式結構; 無論記錄是否按關鍵字有序均可應用

缺點:平均查詢長度較大,查詢效率較低,所以當n很大時,不宜採用順序查詢

(2)析半查詢(二分查詢):不適用於資料元素經常變動的線性表

特點:必須採用順序儲存結構,而且表中元素按關鍵字有序排列

int Search(SSTable ST ,KeyType key)
{
      low=1;high=ST.length;
      while(low<=high)
    {
          mid=(low+high)/2;
          if(key==ST.R[mid].key)  return
mid; else if(key<ST.R[mid].key) high=mid-1; else low=mid+1; } return 0; // 表中不存在待查詢元素 }

優點: 比較次數少,查詢效率高

缺點: (1)對錶結構要求高,只能用順序儲存的有序表

(2)查詢前排序,排序很費時; 為了保持有序性,對錶進行插入和刪除時,平均比較和移動表中一半元素,費時

(3)分塊查詢(索引順序查詢)

除表本身外,還需建立一個索引表:

最大關鍵字

起始地址

如果線性表既要快速查詢有經常動態變化,可採用分塊查詢

缺點: 增加一個索引表的儲存空間並對初始索引表進行排序運算

二、樹表的查詢

二叉排序樹(二叉查詢樹)

特點: (1)中序遍歷一顆二叉樹時可以得到一個結點值遞增的有序序列

(2)含有n個結點的二叉排序樹的平均查詢長度和樹的形態有關。最差:單支樹((1+n)/2);

平衡二叉樹(AVL樹)

平衡因子: 該結點左子樹和右子樹的深度之差

平衡調整規律:LL,RR,LR,RL

三、散列表的查詢

1, 直接算出位置,與資料量無關
    記錄在陣列中的儲存位置P與其關鍵字key之間存在對應關係:H(key) = P
2,H函式稱為雜湊函式
   優點:查詢速度極快O(1),與元素個數無關
相關術語
(1)雜湊函式:轉換函式,將關鍵字轉換為位置(下標) (2)散列表 衝突:不同的關鍵字對映到同一個雜湊地址 衝突解決:開放地址法 線性探測再雜湊 二次(平方)探測再雜湊 隨機探測再雜湊 鏈地址法:將相同雜湊地址的鏈成一個單鏈表,適合表長不定
(3)同義詞:H函式相等的關鍵字
除留餘數法:所選P要小於表長的最大質數