欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

大數(shù)據(jù)小內(nèi)存排序問(wèn)題如何巧妙解決

 更新時(shí)間:2025年01月27日 09:30:46   作者:思wu邪  
文章介紹了大數(shù)據(jù)小內(nèi)存排序的三種方法:數(shù)據(jù)庫(kù)排序、分治法和位圖法,數(shù)據(jù)庫(kù)排序簡(jiǎn)單但速度慢,對(duì)設(shè)備要求高;分治法高效但實(shí)現(xiàn)復(fù)雜;位圖法可讀性差,但存儲(chǔ)空間受限

大數(shù)據(jù)小內(nèi)存排序問(wèn)題,很經(jīng)典,很常見(jiàn),類(lèi)似的還有比如 “如何對(duì)上百萬(wàn)考試的成績(jī)進(jìn)行排序” 等等。

三種方法:

  • 數(shù)據(jù)庫(kù)排序(對(duì)數(shù)據(jù)庫(kù)設(shè)備要求較高)
  • 分治法(常見(jiàn)思路)
  • 位圖法(Bitmap)

方法概要

  • 數(shù)據(jù)庫(kù)排序(對(duì)數(shù)據(jù)庫(kù)設(shè)備要求較高)

    操作:將數(shù)據(jù)全部導(dǎo)入數(shù)據(jù)庫(kù),建立索引,數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行排序,提取出數(shù)據(jù)。
    特點(diǎn):操作簡(jiǎn)單, 運(yùn)算速度較慢,對(duì)數(shù)據(jù)庫(kù)設(shè)備要求較高。

  • 分治法(常見(jiàn)思路)

    操作:操作與歸并排序的思想類(lèi)似,都是分治。

    將數(shù)據(jù)進(jìn)行分塊,然后對(duì)每個(gè)數(shù)據(jù)塊進(jìn)行內(nèi)部的排序(假如是對(duì)int形數(shù)據(jù)升序)。

    和歸并排序類(lèi)似,每個(gè)數(shù)據(jù)塊取第一個(gè)數(shù)據(jù)(當(dāng)前塊的最小數(shù)據(jù)),然后比較取出的數(shù)據(jù),取其最小加入結(jié)果集。

    重復(fù)2操作,直到取完所有數(shù)據(jù),此時(shí)排序完畢。

    特點(diǎn):

  • 位圖法(Bitmap)

    操作:基本思想就是利用一位(bit)代表一個(gè)數(shù)字,例如第 3 位上為 1,則說(shuō)明 3 這個(gè)數(shù)字出現(xiàn)過(guò),若為0,則說(shuō)明 3 這個(gè)數(shù)字沒(méi)有出現(xiàn)過(guò)。很簡(jiǎn)單~

    ? java.util 封裝了 BitSet 這樣一個(gè)類(lèi),是位圖法的典型實(shí)現(xiàn)。

    特點(diǎn):

    • 可讀性差(不是一般的差 ??)

    • 位圖存儲(chǔ)的元素個(gè)數(shù)雖然比一般做法多,但是存儲(chǔ)的元素大小受限于存儲(chǔ)空間的大小。要想定義存儲(chǔ)空間大小就需要實(shí)現(xiàn)知道存儲(chǔ)的元素到底有多少

    • 對(duì)于有符號(hào)類(lèi)型的數(shù)據(jù),需要用 2 位來(lái)表示,比如 第 0 位和第 1 位表示 0 這個(gè)數(shù)據(jù),第 2 位和第 3 位表示 1 這個(gè)數(shù)據(jù)......,這會(huì)讓位圖能存儲(chǔ)的元素個(gè)數(shù),元素值大小上限減半

    • 只知道元素是否出現(xiàn),無(wú)法知道出現(xiàn)的具體次數(shù)

到此這篇關(guān)于大數(shù)據(jù)小內(nèi)存排序問(wèn)題如何巧妙解決的文章就介紹到這了,更多相關(guān)大數(shù)據(jù)小內(nèi)存排序問(wèn)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中一些優(yōu)化straight_join技巧

    MySQL中一些優(yōu)化straight_join技巧

    這篇文章主要介紹了MySQL中一些優(yōu)化straight_join技巧,作者通過(guò)用戶(hù)的實(shí)際案例分析,需要的朋友可以參考下
    2015-05-05
  • mysql優(yōu)化取隨機(jī)數(shù)據(jù)慢的方法

    mysql優(yōu)化取隨機(jī)數(shù)據(jù)慢的方法

    mysql取隨機(jī)數(shù)據(jù)慢,怎么辦?下面小編與大家一起來(lái)看看mysql取隨機(jī)數(shù)據(jù)慢優(yōu)化的過(guò)程。
    2013-11-11
  • 詳解MySQL中的數(shù)據(jù)類(lèi)型和schema優(yōu)化

    詳解MySQL中的數(shù)據(jù)類(lèi)型和schema優(yōu)化

    這篇文章主要介紹了MySQL中的數(shù)據(jù)類(lèi)型和schema優(yōu)化的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL的知識(shí),感興趣的朋友可以了解下
    2020-10-10
  • MySQL執(zhí)行狀態(tài)的查看與分析

    MySQL執(zhí)行狀態(tài)的查看與分析

    今天小編就為大家分享一篇關(guān)于MySQL執(zhí)行狀態(tài)的查看與分析,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 深入了解MySQL中的慢查詢(xún)

    深入了解MySQL中的慢查詢(xún)

    什么是MySQL慢查詢(xún)呢?其實(shí)就是查詢(xún)的SQL語(yǔ)句耗費(fèi)較長(zhǎng)的時(shí)間。具體耗費(fèi)多久算慢查詢(xún)呢?這其實(shí)因人而異,有些公司慢查詢(xún)的閾值是100ms,有些的閾值可能是500ms。本文將通過(guò)示例和大家聊聊慢查詢(xún)的危害和常用場(chǎng)景,感興趣的可以了解一下
    2022-10-10
  • mysql雙機(jī)熱備實(shí)現(xiàn)方案【可測(cè)試】

    mysql雙機(jī)熱備實(shí)現(xiàn)方案【可測(cè)試】

    雙機(jī)熱備從廣義上講,就是對(duì)于重要的服務(wù),使用兩臺(tái)服務(wù)器,互相備份,共同執(zhí)行同一服務(wù)。這篇文章主要介紹了mysql雙機(jī)熱備實(shí)現(xiàn)方案,需要的朋友可以參考下
    2019-10-10
  • mysql中blob數(shù)據(jù)處理方式

    mysql中blob數(shù)據(jù)處理方式

    本文通過(guò)實(shí)例代碼給大家介紹了mysql中blob數(shù)據(jù)處理方式,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-06-06
  • mysql字符串拼接并設(shè)置null值的實(shí)例方法

    mysql字符串拼接并設(shè)置null值的實(shí)例方法

    在本文中小編給大家整理的是關(guān)于mysql 字符串拼接+設(shè)置null值的實(shí)例內(nèi)容以及具體方法,需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • MySQL的字符集操作命令總結(jié)

    MySQL的字符集操作命令總結(jié)

    這篇文章主要介紹了MySQL的字符集操作命令總結(jié),包括各種查看數(shù)據(jù)庫(kù)、數(shù)據(jù)表等查詢(xún)命令,需要的朋友可以參考下
    2014-04-04
  • MySQL的InnoDB存儲(chǔ)引擎的數(shù)據(jù)頁(yè)結(jié)構(gòu)詳解

    MySQL的InnoDB存儲(chǔ)引擎的數(shù)據(jù)頁(yè)結(jié)構(gòu)詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL的InnoDB存儲(chǔ)引擎的數(shù)據(jù)頁(yè)結(jié)構(gòu),,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論