演算法(資料結構)

2021-05-27 16:34:04 字數 496 閱讀 4008

空間不夠儲存

給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中

40億個數空間儲存的問題:利用對映

分析:unsigned 範圍是2^32 ,40億大約大約4g個數不到,常規方法肯定是不行的 我們你可以利用

伴隨陣列

那種思想利用記憶體位址代替下標。

1個unsigned int 是乙個2^32以內的數,那麼也就是這樣的1個數,可以表示32個數是否存在(每位表示乙個數)利用陣列unsigned int array[n] 可以表示

n*32個數的存在,而硬搞的方法則只能表示n個數一共需要16g的空間現在只需要512m

問題到這裡,其實基本上已經完事了,判斷本身,在

位圖演算法

這裡就是找到對應的記憶體位置是否為1就可以了。

author:v_july_v

演算法 資料結構

演算法是程式的核心,演算法的好壞直接決定了程式的好壞 基礎的幾種演算法 二分查詢 氣泡排序 插入排序 選擇排序 快速排序 二分查詢 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數...

查詢演算法 資料結構

查詢演算法總體分為靜態查詢,和動態查詢,其中靜態查詢法,不改變查詢表結構,動態查詢表,可以進行插入和刪除操作。一 查詢的基本概念 查詢,也可稱檢索,是在大量的資料元素中找到某個特定的資料元素而進行的工作。查詢是一種操作。二 順序查詢 針對無序序列的一種最簡單的查詢方式。時間複雜度為o n 三 折半查...

初識演算法 資料結構

需求驅動 what why how 所有的學習從需求開始,學習任何知識要想事半功倍,一定要先搞清楚它存在的意義和價值 目錄 1 什麼是演算法?2 演算法好壞的評判標準 2.1 時間複雜度 流程決定 2.2 額外空間複雜度 流程決定 2.3 常數項時間 實現細節決定 what 總而言之 演算法就是解決...