在前面介紹的排序算法中,最快的排序算法為歸並排序(http://www.linuxidc.com/Linux/2014-11/109824.htm),但是歸並排序有一個缺陷就是排序過程中需要O(N)的額外空間。本文介紹的快速排序算法時一種原地排序算法
歸並排序是一種利用“分治”手段來實現的排序方法,其通過二分將數組分為若干個有序的子數組,然後再將這些子數組合並到一起組成一個新的數組。歸並排序的實現 http://www.linuxidc.com/Linux/2014-09/
插入排序就是每次選取一個元素插入到已經排序的子數組中,如此循環,直到所有的元素都完成排序。算法實現:void sort::insert_sort(int* a, const int n){ for(int i=1; i<n; i++)
選擇排序就是每次將未排序的數組中最小的一個元素找出,將其與數組的第一個元素交換,從而完成數組的排序。算法實現:void sort::select_sort(int* a,const int n){ for(int i=0 ;i<n;
在注重效率的今天,很多人都不喜歡制作 PPT,特別是技術人員。流行的 PPT 制作工具往往需要用戶關注太多內容無關的細節。而像 TeX 這樣強大的系統又似乎太過於重量級了。 現在越來越流行制作網頁格式的 slides,並通過浏覽器來播放和發
使用Qt創建應用程序是十分簡單的。考慮到你的使用習慣,我們編寫了兩套教程來實現兩個相似的應用程序,但是使用了不同的方法。在開始之前,請確保你已經下載了QtSDK的商業版本或者開源版本,並且你也已經熟悉了Qt的開發工具。QtSDK提供了QtCreato
一、進行JDBC編程的步驟大致如下:1. 加載數據庫驅動,通常使用Class類的forName()靜態方法來加載驅動。如下代碼:Class.forName(dirvirClass)上面代碼中的driverCla
Java中創建線程主要有三種方式:一、繼承Thread類創建線程類(1)定義Thread類的子類,並重寫該類的run方法,該run方法的方法體就代表了線程要完成的任務。因此把run()方法稱為執行體。(2)創建Thread子類的實例,即創建了線程對象
沒有調試器的情況下編寫程序時最糟糕的狀況是什麼?編譯時跪著祈禱不要出錯?用血祭召喚惡魔幫你運行程序?或者在每一行代碼間添加printf(test)語句來定位錯誤點?如你所知,編寫程序時不使用調試器的話是不方便的。幸好,linux下調試還是很方便的。大
Python 2.X 在輸入漢字和特殊字符的時候,經常遇到編碼解碼的問題,究其原因,編譯器默認將文件當做ascii編碼,因此要正確的實現編解碼的轉換,需要進行一些設置。首先讓我們來了解幾個概念。文件編碼、字符串編碼、系統編碼代碼中字符串的默認編碼與代
在之前的文章中提到了用arm-none-linux-gnueabi-gcc交叉編譯移植程序到Android平台上。也提到了,Android中沒有glibc,所以arm-none-linux-gnueabi-gcc編譯出來的程序需要在編譯時指明連接器,
一、隨機數測試C++中常用rand()函數生成隨機數,但嚴格意義上來講生成的只是偽隨機數(pseudo-random integral number)。生成隨機數時需要我們指定一個種子,如果在程序內循環,那麼下一次生成隨機數時調用上一次的結果作為種子
Interlocked類MSDN中對他的定義為:為變量在多線程共享的情況下提供原子操作。很多人對於Interlocked的使用,僅限於Interlocked.Increment方法,這個方法在多線程環境下,總可以保證變量自增的正確性。那麼原子方法的定
讀寫鎖的概念很簡單,允許多個線程同時獲取讀鎖,但同一時間只允許一個線程獲得寫鎖,因此也稱作共享-獨占鎖。在C#中,推薦使用ReaderWriterLockSlim類來完成讀寫鎖的功能。某些場合下,對一個對象的讀取次數遠遠大於修改次數,如果只是簡單的用
xinted(eXtended InterNET daemon)即網絡守護進程。xinetd能夠同時監聽多個指定的端口,在接受用戶請求時,它能夠根據用戶請求的端口的不同,啟動不同的網絡服務進程來處理這些用戶請求。例子1,使用xinetd調用https
在使用java集合的時候,都需要使用Iterator。但是java集合中還有一個迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的時候可以使用。這兩種迭代器有什麼區別呢?下面我們詳細分析。這裡有一
今天在寫zabbix storm job監控腳本的時候用到了python的redis模塊,之前也有用過,但是沒有過多的了解,今天看了下相關的api和源碼,看到有ConnectionPool的實現,這裡簡單說下。在ConnectionPool之前,如果
任何的數據類型我們都可以把它當成個模子,然後可成各種類型的數據;任何模子都又其特定的大小。int *p;用sizeof測試下,sizeof(p) 或者sizeof(int)是4byte,於是可以這樣定義:一個int類型的模子在內存上刻出大小為4字節的
Java通過正則表達式實現Excel小插件取文本功能我們在使用EXCEl的時候,常常會用到取文本的插件,但是插件總有不好用的時候,所以決定將該功能融入到系統當中public String matchesChinese(String str) {&nb