隨筆-14  評論-142  文章-0  trackbacks-0
          線性表 :
          是 n(n>=0) 個相同特性數據元素的有序序列 .
          ? 順序存儲結構和實現
          線性表的順序存儲結構 , 可以隨機存取 . 邏輯上相鄰的兩個元素 , 在物理存儲上也是相鄰的 . 順序存儲表示 :
          ( 見源代碼 ) 基本操作在順序表上的實現
          ( 見源代碼 )
          四大基本操作 :
          (1) ?? 構造一個空的線性表
          ( 簡單 )
          (2) ?? 順序表的插入算法 .
          算法分析 :
          時間主要耗費在移動元素上 , 與問題的規模 (N) 和你插入元素的具體位置有關 , 即插入元素位置越靠近 , 位序 1, 消耗的時間也就越多 . 設在位序 i 插入元素的概率位 pi=1/(n+1), 移動元素的個數為 ,(n-i+1):
          ????? 那么在長度為 n 的順序表中 , 插入一個元素 , 所需移動元素的期望值為 :
          ????? E = ∑ P i*(n-i+1)???? (i=1,2,3,..,n+1)
          ????? ?=n/2;
          平均移動表中的一半元素 . 時間復雜度 O( n )
          (3) ?? 順序表的刪除算法 .
          算法分析 :
          同上 , E = ∑ q i*(n-i)???? (i=1,2,3,..,n+1) qi=1/n
          ????? ? =(n-1)/2;
          時間復雜度為 O (n);
          (4) ?? 定位算法 .
          算法分析 :
          基本操作是進行兩個元素之間的比較 , 假設存在該元素為 a i( 1 ≤ i ≤ n), 則比較的次數為 i, 否則為 n, 所以算法時間復雜度為 O(n); 順序存儲結構的性能小結 :
          優點 :
          (1) ?? 可以隨機存取 , 順序表中的數據元素 .
          (2) ?? 存儲空間連續 , 不必要增加額外的存儲空間 . 比如如果你以鏈式結構存儲 , 那么你就不得不增加一個指針域 .
          缺點 :
          (1) 插入和刪除一個元素 , 需要移動大量元素 , 耗費時間 .
          (2) 初始化順序表的時候 , 要預先分配一個最大空間 . 有時候會使存儲空間得不到充分利用 .
          (3) 容量難以擴充 .
          posted on 2006-06-15 17:25 liulang 閱讀(1519) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巴南区| 深圳市| 进贤县| 湖南省| 聂拉木县| 夏邑县| 丰镇市| 将乐县| 余干县| 桃园市| 商都县| 双辽市| 泗洪县| 闵行区| 临安市| 侯马市| 博客| 云龙县| 淅川县| 垦利县| 根河市| 崇信县| 湛江市| 宝清县| 玉树县| 驻马店市| 蛟河市| 石嘴山市| 兴国县| 平凉市| 临江市| 常德市| 法库县| 靖安县| 德格县| 武定县| 乌鲁木齐县| 繁峙县| 金坛市| 江都市| 阜阳市|