題目:對2G的數據量進行排序,這是基本要求。 數據:1、每個數據不大於8億;2、數據類型位int;3、每個數據最多重復一次。 內存:最多用200M的內存進行操作。 我聽過很多種類似問題的解法,有的是內存多次利用,有的用到了外存,我覺得這兩種做法都不是比較好的思想,太慢。由於這個題目看起 ...
,位圖法介紹 位圖的基本概念是用一個位 bit 來標記某個數據的存放狀態,由於采用了位為單位來存放數據,所以節省了大量的空間。舉個具體的例子,在Java中一般一個int數字要占用 位,如果能用一位就表示這個數,就可以縮減大量的存儲空間。一般把這種方法稱為位圖法,即Bitmap。 位圖法比較適合於判斷是否存在這樣的問題,元素的狀態比較少,元素的個數比較多的情況之下。那么具體咋么做呢,這樣,非常簡單 ...
2017-10-14 22:12 2 3604 推薦指數:
題目:對2G的數據量進行排序,這是基本要求。 數據:1、每個數據不大於8億;2、數據類型位int;3、每個數據最多重復一次。 內存:最多用200M的內存進行操作。 我聽過很多種類似問題的解法,有的是內存多次利用,有的用到了外存,我覺得這兩種做法都不是比較好的思想,太慢。由於這個題目看起 ...
《Programming Pearls》(編程珠璣)第一章講述了如何用位圖排序無重復的數據集,整個思想很簡潔,今天實踐了下。 一、主要思想 位圖排序的思想就是在內存中申請一塊連續的空間作為位圖,初始時將位圖的每一位都置為0,然后依次讀取待排序文件的整數,將整數所在的位設置為1,最后掃描 ...
原本的的一張表,填寫數據的字段為字符串varchar2類型,然后進行排序的時候,就會出現問題。會默直接默認判斷為第一個數字9最大,而不判斷整個數字的大小。 所以,就要用到TO_NUMBER函數 直接就可以把這個純數字的字段改成number類型進行排序。 然后查詢 ...
...
當同時排序又分頁時,如果排序的字段X不是唯一字段,當多個記錄的X字段有同一個值時順序是隨機的。 這個有可能造成分頁時數據重復的問題。某一頁又把上一頁的數據查出來了,其實數據庫只有一條記錄。 解決辦法: 如果排序字段不是唯一的,則增加個二級排序,二級排序的字段要是唯一的(例如id)。 ...
對於數據排序大家肯定見過不少,選擇排序或者冒泡排序等等,今天我們要做的是快速排序 + 直接插入排序來對大數據(1000萬以上)進行排序,下面我們分別來看看這兩種排序規則 1, 直接插入排序 (1)基本思想:在要排序的一組數中,假設前面(n-1)[n>=2] 個數已經是排 好順序的,現在 ...
。當然這在處理小規模數據是可行的。 我們考慮大數據的情況:例如在java語言下,對10億個int類型數據 ...
問題 一個文件中有9億條不重復的9位整數,對這個文件中數字進行排序 直接想法 9億條(9e8)數據,每個數據能用int存儲 因此所需要內存 9e8x4B = 3.6e9B = 3.6GB,這是裝載所需要的 排序復雜度一般都是nlogn 因此需要的內存更大 方法一 數據庫排序 將文本文件 ...