幾種常見的查詢演算法之比較
1樓:
一、順序查詢。
條件:無序或有序佇列。
原理:按順序比較每個元素,直到找到關鍵字為止。
時間複雜度:o(n)
二、二分查詢(折半查詢)
條件:有序陣列。
原理:查詢過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束;
如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。
如果在某一步驟陣列為空,則代表找不到。
時間複雜度:o(logn)
三、雜湊表(雜湊表)
條件:先建立雜湊表(雜湊表)
原理:根據鍵值方式(key value)進行查詢,通過雜湊函式,定位資料元素。
時間複雜度:幾乎是o(1),取決於產生衝突的多少。
2樓:網友
二分法平均查詢效率是o(logn),但是需要陣列是排序的。如果沒有排過序,就只好先用o(nlogn)的預處理為它排個序了。而且它的插入比較困難,經常需要移動整個陣列,所以動態的情況下比較慢。
雜湊查詢理想的插入和查詢效率是o(1),但條件是需要找到乙個良好的雜湊函式,使得分配較為平均。另外,雜湊表需要較大的空間,至少要比o(n)大幾倍,否則產生衝突的概率很高。
二叉排序樹查詢也是o(logn)的,關鍵是插入值時需要做一些處理使得它較為平衡(否則容易出現輕重的不平衡,查詢效率最壞會降到o(n)),而且寫起來稍微麻煩一些,具體的演算法你可以隨便找一本介紹資料結構的書看看。當然,如果你用的是c語言,直接利用它的庫型別map、multimap就可以了,它是用紅黑樹實現的,理論上插入、查詢時間都是o(logn),很方便,不過一般會比自己實現的二叉平衡樹稍微慢一些。
含五個節點元素值均不相同的二叉搜尋樹有幾種
3樓:網友
bst樹5個元素均不相同,那麼一定能對他們從小到大排序,那麼元素的位置都是相對固定的,假如從小到大設為1,2,3,4,5號結點,那麼3號位置一定是根,1,2是3號的左子樹,4,5是3號的右子樹,1,2有兩種排法,4,5也有兩種排法,那有2*2=4種排法,所以含五個節點元素值均不相同的二叉搜尋樹有4種。
這個給你參考,假如行儲存優先,address(a[2][2]) address(a[0][0]) 2*n + 3)-1,所以676=644 + 2n +3-1,n= 15,所以元素有15列。
address(a[4][5])=address(a[0][0]) 4*n+6)-1 =644+66-1=709
假如列儲存優先,address(a[2][2]) address(a[0][0]) 2*m + 3)-1
m=15行,所以address(a[4][5])=address(a[0][0]) 4*m+6)-1 =644+66-1=709
4樓:
答案怎麼是42種?
我想了下 ,其實ls考慮的情況未免太少了。
1-5任何乙個數都可能成為根節點,這時候就要分情況考慮。
當跟節點是1時有14種情況。
當根節點是2時有5中情況。
3時是4種。
4和2對稱,5和1對稱。
故總共有 (14+5)*2+4=42種。
藥品的分類,藥品主要分為哪幾類
當我們拿著中藥方去中藥店配藥的時候,會看到排列整齊的放置中藥飲片的小抽屜,外面還貼著藥名,這些小抽屜是盛放中藥飲片的容器,叫 藥鬥 由於中藥品種多達五六百至一千種,且質地堅鬆不 一 用量多少不同 藥性又有相須相反的區別,就飲片來說有的形狀相似,有的名稱易混,有的含有劇毒,還有的 昂貴,為了將這些品質...
吊頂的種類,吊頂主要分為那幾類?
易書科技 1 懸吊式懸吊式是把各種板材 金屬 玻璃等懸掛在結構層上的一種吊頂形式。它富於變化動感,給人一種耳目一新的美感,常用於賓館 廳 展館 影視廳等吊頂裝飾。2 凹凸式凹凸式吊頂是指表面具有凹入或凸出構造處理的一種吊頂形式,造型複雜富於變化 層資感強 適用於廳 門廳 餐廳 等頂面裝飾。3 平面式...
構成細胞的主要物質,組成細胞的主要元素
構成細胞的主要物質是 水佔85 一90 無機鹽佔1 一,蛋白質佔7 一10 脂質佔1 一2 糖類和核酸佔1 一。組成細胞的主要元素 1 細胞中元素的分類。根據元素在生物體內的含量,可分為大量元素和微量元素 大量元素 c h o n p s k ca mg 微量元素 fe mn zn cu b mo等...