基於比較的內排序演算法(三)
前面發了兩篇內排序的文章。(一)中當時歸併排序並沒有寫出,(二)中今天發現在非遞迴quickSort中stack<node*> 存在記憶體洩露,並且主程式選項功能支援不是很好,所以今天又練習寫了一遍。
大規模排序時,發現1million整形資料大小為6.8M,int在當前平臺佔4B
1million = 1000000 = 106 ≈220 總容量=4B*220 =4M≈6.8M,因為這裡面還有空格、回車還有檔案自身的一些資訊佔容量。100million資料大小為673M,1billion資料大小為6.6G。各種檔案系統大小限制在下有說明。當前系統最大申請記憶體可達400G。
C/C++原始碼:sort.cpp
功能:七種常見內排序演算法
C/C++原始碼:data.cpp
功能:隨機生成一定規模的隨機資料
執行結果:
資料規模10無序資料集,迭代1W次
資料規模100有無序資料集,迭代1024次
資料規模100有序資料集,迭代1024次
資料規模10W無序資料集
資料規模10W有序資料集(注意quickSort效能下降)
資料規模100W無序資料集
1Billion無序資料集(quick,heap,merge,其它O2的方法已經淘汰)
注意在小規模如果資料集全部可以裝入記憶體,不考慮換頁影響的話,三種排序時間複雜度都是O(nlgn),其中資料顯示快排是時間最快,歸併時間與其差不多,堆排慢於其它兩種方法,大概是1.5倍關係。但是當10億資料,記憶體容量約為4G。快排與堆排需要遍歷遍歷整個陣列,會造成顛簸,而歸併的性質決定了它每次處理的資料有很強的區域性性,不會很大顛簸,所以歸併排比其它兩種效能提高數倍。
NTFS(Windows):支援最大分割槽2TB,最大檔案2TB
FAT16(Windows):支援最大分割槽2GB,最大檔案2GB
FAT32(Windows):支援最大分割槽128GB,最大檔案4GB
Ext2
最大檔案大小: 1TB
最大檔案極限: 僅受檔案系統大小限制
最大分割槽/檔案系統大小: 4TB
最大檔名長度: 255 字元
預設最小/最大塊大小: 1024/4096 位元組
預設inode分配: 每4096位元組為1
在強制FS檢查前的最大裝載: 20(可配置)
//REDHAT9預設是ext3的檔案系統
Ext3
最大檔案大小: 1TB
最大檔案極限: 僅受檔案系統大小限制
最大分割槽/檔案系統大小: 4TB
最大檔名長度: 255 字元
預設最小/最大塊大小: 1024/4096 位元組
預設inode分配: 每4096位元組為1
在強制FS檢查前的最大裝載: 20(可配置)
ReiserFS
最大檔案大小: 1TB
最大檔案極限: 32k目錄,42億檔案
最大分割槽/檔案系統大小: 4TB
最大檔名長度: 255 字元
JFS
最小檔案系統大小 16 MB
最大檔案大小: 受體系結構限制
最大檔案極限: 受檔案系統大小限制
預設最小/最大塊大小: 1024/4096 位元組
預設inode分配: 動態
相關推薦
基於比較的內排序演算法(三)
前面發了兩篇內排序的文章。(一)中當時歸併排序並沒有寫出,(二)中今天發現在非遞迴quickSort中stack<node*> 存在記憶體洩露,並且主程式選項功能支援不是很好,所以今天又練習寫了一遍。 大規模排序時,發現1million整形資料大小為6.8M,in
java排序演算法(三)------選擇排序
選擇排序 基本思想:每一趟從待排序的資料元素中選擇最小(或最大)的一個元素作為首元素,直到所有元素排完為止,簡單選擇排序是不穩定排序。 選擇排序的時間複雜度和空間複雜度分別為 O(n2 ) 和 O(1) 程式碼實現: public static void s
java 實現 常見排序演算法(三)快速排序
大家好,我是烤鴨: 今天分享一下基礎排序演算法之快速排序。快速排序是內部排序(基於比較排序)中最好的比較演算法。 1. 快速排序:
排序演算法(三)——快速排序
快速排序(英語:Quicksort),簡稱快排,一種排序演算法。在平均狀況下,排序個專案要次比較。在最壞狀況下則需要次比較。 運作方式如下: 1.從陣列中挑出一個元素,作為基準,一般是第一個元素。 2.重新排序數列,所有比基準值小的元素擺放在基準前面,所有比基準值大的元素擺在基準後面(相
排序演算法(三)-- 堆排序
堆排序 堆排序演算法結合了插入排序和歸併排序演算法的優點,和插入排序一樣,堆排序不需要額外申請空間。它是一種原地排序的演算法;和歸併排序一樣,堆排序的執行時間也是O(nlgn)。堆排序利用“堆”這種資
排序演算法(三):計數排序與桶排序
插入排序、堆排序、歸併排序等排序方法,在排序的最終結果中,各個元素的次序依賴於他們之間的比較,我們把這一類的排序演算法稱為比較排序。在最壞情況下,任何比較排序演算法都要經過 Omega(nlgn)次比較。因此堆排序和歸併排序都是漸近最優的比較排序演算法。
圖——基本的圖演算法(三)拓撲排序
圖——基本的圖演算法(三)拓撲排序 1. 基本概念 對於一個有向無環圖G = (V, E)來說,其拓撲排序就是G中所有頂點的一種線性排序,這種排序滿足如下條件:如果圖G中包含邊(a, b),即由頂點a指向頂點b的有向邊,那麼在G的拓撲排序中,頂點a一定處於頂點b前面(因此如果有向
從零開始學演算法(三)插入排序
從零開始學演算法(三)插入排序 插入排序 演算法介紹 演算法原理 演算法簡單記憶說明 演算法複雜度和穩定性 程式碼實現 插入排序 程式碼是Javascript語言寫的(幾乎是虛擬碼) 演算
聚類演算法(三)——基於密度的聚類演算法(以 DBSCAN 為例)
上一篇部落格提到 K-kmeans 演算法存在好幾個缺陷,其中之一就是該演算法無法聚類哪些非凸的資料集,也就是說,K-means 聚類的形狀一般只能是球狀的,不能推廣到任意的形狀。本文介紹一種基於密度的聚類方法,可以聚類任意的形狀。 基於密度的聚類是
理解GBDT演算法(三)——基於梯度的版本
上一篇中我們講到了GBDT演算法的第一個版本,是基於殘差的學習思路。今天來說第二個版本,可以說這個版本的比較複雜,涉及到一些推導和矩陣論知識。但是,我們今天可以看到,兩個版本之間的聯絡,這個是學習演算法的一個重要步驟。 這篇博文主要從下面這幾個方面來說基於梯度
排序演算法(六)非比較排序----計數排序和基數排序
前邊的幾篇文章介紹的幾種排序演算法都是比較排序,接下來的文章將會介紹兩種非比較排序。 計數排序: 計數排序通過雜湊的方法將一組資料對映到一個數組裡,最後將陣列中的數依次讀取,並寫進原來的陣列,讀出的資
【影象配準】基於灰度的模板匹配演算法(三):劃分強度一致法(PIU)
簡介: 前面幾篇文章介紹了一些比較基本的基於灰度的影象配准算法: 本文將介紹一種類似的相似度測量演算法,叫做劃分強度一致法(Partitioned Intensity Uniformity,PI
linux4.10.8 內核移植(三)---裁剪內核
conf .cn 需要 正常 多少 分享 內核 col make 一、裁剪內核 1.1 第一次修改 現在的內核大小為2.8M左右,要裁剪到2.0M以下,畢竟給內核分區就只有2.0M。 這兩個設備我們沒有,裁剪掉。 進入make menuconfig中
深入理解Java內存模型(三)——順序一致性
內存空間 寫入 方便 語言 body 一半 同步 java語言 post 本文轉自:http://www.infoq.com/cn/articles/java-memory-model-3 數據競爭與順序一致性保證 當程序未正確同步時,就會存在數據競爭。java內存模型規範
內置鎖(三)synchronized的幾個要註意的對象監視器
sta 兩種 sys 自動裝箱 read rac nal implement ted 前言 ?? 經過前面的兩篇文章的介紹,可以清楚知道,synchronized可以用於修飾一個方法 或者 代碼塊,線程要訪問這些臨界區代碼,則要先獲取對應的 對象監視器 ,從而使多個線程互斥
Java-經典排序演算法(一)
前言: 排序演算法有很多種,如選擇排序、插入排序、氣泡排序、桶排序、快速排序等等。這裡介紹的是簡化版桶排序、氣泡排序和插入排序。 推薦一本演算法入門書——《啊哈!演算法》 1. 桶排序[簡化版]: 原理:新建一個book陣列用來標記原陣列每一個數字出現的個數。
深入理解線性迴歸演算法(三):淺談貝葉斯線性迴歸
前言 上文介紹了正則化項與貝葉斯的關係,正則化項對應於貝葉斯的先驗分佈,因此通過設定引數的先驗分佈來調節正則化項。本文首先介紹了貝葉斯線性迴歸的相關性質,和正則化引數λ的作用,然後簡單介紹了貝葉斯思想的模型比較,最後總結全文。 目錄 1、後驗引數分佈和預測變數分
6分鐘演示,15種排序演算法(視訊)
github:https://github.com/bingmann/sound-of-sorting 排序之聲 - “Audibilization”和排序演算法的視覺化:http://panthema.net/2013/sound-of-sorting/ 視訊:https
經典排序演算法(1)——氣泡排序演算法詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
經典排序演算法(4)——折半插入排序演算法詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!