C 中的資料字典Dictionary

2022-09-20 14:36:11 字數 1533 閱讀 5839

有50w個int型別的數字,現在需要判斷一下裡面是否存在重複的數字,請簡要說明下。

假如這個題目讓我做,第一感覺可能直接向兩個for迴圈,簡單做個判斷就解決了。可是看到幾個大佬的討論,才發現是我知識淺薄了。

這道題難道考的就是對業務**迴圈的應用嗎?肯定不是的。

我們知道,在驗證一段**或者乙個程式演算法的完美指標是空間複雜度和時間複雜度。通過這兩個指標來進行評判。

空間複雜度:

是指在乙個演算法程式在執行過程中,單位時間內臨時所占用的儲存容量是多少。用s(n)=o(f(n))來表示。

時間複雜度:

是指在乙個演算法程式執行過程中,所需要花費的時間多少。

一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式,記作t(n)=o(f(n)),稱為o(f(n))為演算法的時間複雜度。

比如插入排序的時間複雜度是o(n^2),空間複雜度是o(1)。

乙個演算法的優劣主要從演算法的執行時間和所需要占用的儲存空間兩個方面衡量。

群裡面討論的過程中,出現有陣列array,鍵值對,還有資料字典dictionary(鍵值對的一種)。最後都覺得使用dictionary儲存這50w個int型別的資料,利用其key或者value來判斷是否有重複的值。

既然看到這裡了,今天咱也就簡單複習下dictionary,看看它到底有什麼魅力。

根據msdn上的記載,說它是表示鍵和值的集合。提供一組鍵到一組值的對映。每次對字典的新增都包含乙個值和與其關聯的鍵。使用其鍵檢索值的速度非常快,接近o(1)。

dictionary該類是作為雜湊表實現的,檢索的速度取決於為指定的型別的雜湊演算法的質量tkey。

其餘特性簡單總結如下

下面是關於dictionary的一些crud操作。

定義字典新增鍵值取值改值遍歷key遍歷value刪除元素清空所有元素

//定義

static dictionaryahuiinfo = new dictionary();

static void main(string args)

else

}}

人生短暫,我不想去追求自己看不見的,我只想抓住我能看得見的。

原創不易,給個關注。

python資料型別 字典Dictionary

python資料型別 字典dictionary 字典是一種可變容器模型,可以儲存任意型別物件 鍵是唯一的,但是值不需要唯一 值可以取任何資料型別,但是鍵必須是不可變的,如字串,數字,元組 建立字典 dict1 訪問字典的值 print dict1 abc 如果字典裡沒有該鍵,或報錯 修改字典 dic...

fastdb中的資料字典

在程式的啟動過程中,第一項任務,在沒執行main函式之前,通過register巨集定義,把錶的結構儲存在乙個全域性變數的列表中static dbtabledescriptor chain 由於此時資料庫還沒有啟動,所以結構只儲存在記憶體中,在硬碟上是不存在的,當呼叫資料庫的open函式時,裡面呼叫l...

Oracle中的資料字典

資料字典 定義 資料字典是oracle資料庫中最重要的組成部分,記錄了資料庫的系統資訊,它是唯讀表和檢視的集合,資料字典的所有者為sys使用者 使用者只能在資料字典上執行查詢操作,而其維護和修改是由系統自動完成的!資料字典的組成 包括資料字典基表和資料字典檢視 其中基表儲存資料庫的基本資訊,普通使用...