Time of Update: 2018-12-03
設計一個演算法,把一個含有N個元素的數組迴圈右移K位,要求時間複雜度為O(N),且只允許使用兩個附加變數。 不合題意的解法如下: 我們先實驗簡單的辦法,可以每次將數組中的元素右移一位,迴圈K次。abcd1234--->4abcd123--->34abcd12--->234abcd1--->1234abcd。代碼如下所示:RightShift(int *arr, int N, int K){while(K--){int t = arr[N - 1
Time of Update: 2018-12-03
1、資料與資訊是有別的,明白資料與資訊的關係是進行資料管理、展現和挖掘的第一步:資料的價值必須通過資訊來展現,資訊才是真正有價值的東西;單條資料的資訊量是有限的,資訊量與資料量成指數級增長;資料所蘊含的資訊量非常大,但要擷取這些資訊卻並不是很容易的;相同的資料所包含的資訊量理論上是一樣的,但能擷取到的,真正有價值的卻總是有限的,這也是資料採礦的價值所在;良好的資料群組織,展現和管理形式,對高效擷取資訊有非常大的協助,這也是資料結構設計好壞的一個評價點;我們的目的是擷取資訊,但資訊是蘊含在資料裡的
Time of Update: 2018-12-03
花了1天多時間,終於調通了一個SSH應用,終於完成了SSH的一個簡單的增刪查改,中途經曆曲折,連Eclipse,Tomcat都重裝幾次.感覺SSH好強大,一個簡單的問題在一種宗教般的信仰(脫耦)下整成了一套如此複雜的體系,確實不容易.Spring剛開始時的IOC,還只是簡單類構建,現在連屬性都能關聯建立,夠強大,但如果邏輯複雜點呢?做項目就變成了做配置.Hibernate的註解映射,比起xml映射方式要簡化了很多.在我看來,想把關聯關係都表達在配置裡,純粹是自尋麻煩。簡單是一種美,但如此"簡單"
Time of Update: 2018-12-03
準備用delphi做用戶端搞點東西,需要做本機存放區,根據網上的建議選擇了sqlite.也找了個封裝,但運行起來老是提示"unable to open database file",在網上找了好幾圈都沒找到問題所在,有點懷疑是封裝訪問庫本身的問題,不過也沒道理,那麼多人下載就我碰到問題呢.突然想起,老外封的東西經常有中文路徑不支援的問題,所以死馬當活馬醫,把檔案拷到根目錄下,路徑全是英文,結果一運行,OK了.我估計問題在於現在的系統大部分都是utf-8編碼,而我用的delphi7不支援utf8,
Time of Update: 2018-12-03
在天朝做一名程式員,確實不容易,每一個其實都是一個傳奇,無所不能的金剛戰士.這段時間一直都在忙著做一套管理系統,進度相當的緊張,直到最近兩天才看到曙光,寫久了代碼,就想著放鬆一下,上來碼碼文字,調節一下.今天打了場球,回來路上突然想數數自己用過程式設計語言,在一番回憶之後,就有了上面的感慨---哥真的是一個傳奇.下面是我學過用過的語言的編年史(由於年代久遠,時序不完全正確,上榜的標準是學習期間不低於3個月或者工作中有實際應用,並不少於3個月持續使用時間):年代 主要作品大學:
Time of Update: 2018-12-03
整理出來的一個Makefile模板,新增了一個內容,調用gcc產生依賴檔案,這樣如果某個c檔案包含的標頭檔被更新了,該c檔案以及依賴於該c檔案的obj檔案都會被重新編譯.這個模板是按照我習慣的專案檔組織形式進行定義的,我的習慣是標頭檔放在include檔案夾,代碼放在src檔案夾,目標檔案放在obj檔案夾,產生的靜態庫放在lib檔案夾,而可執行程式放在bin目錄,現在新增的依賴關係檔案則放在deps檔案夾.這裡是使用該Makefile模板的一個項目執行個體.其中main.c和hello.c都包含
Time of Update: 2018-12-03
為了實現像qq,最佳化大師中菜單。在網上找了好久,終於在vckbase中找到了。主要的原理就是通過移動視窗來實現的。 我實現的工具中用了2個按鈕和兩個listctrl,不過listctrl可以用其他控制項來代替,這樣就更加多樣化了。 首先是為這2個按鈕添加事件,這兩個按鈕的事件響應函數分別是afx_msg void OnBnClicke1(NMHDR * pNMHDR,LRESULT *pResult);afx_msg void OnBnClicke2(NMHDR *
Time of Update: 2018-12-03
控制項放在我的資源裡面.這個控制項是一個視窗控制項,可用於Silverlight的MDI開發,既可以作為MDI的子表單,又可作為模態表單使用,但這種模態只針對父表單,比如MDI表單中有在A,B兩個子表單,A表單彈出模態表單C,只會禁用A表單,不會影響B表單。看過老外發布的類似控制項,感覺搞得比較複雜,而且沒有實現相對模態。該控制項有源碼,而且有樣本用法在裡面,希望對大家有用,如有問題,可聯絡我,謝謝!http://download.csdn.net/detail/hawksoft/3675353
Time of Update: 2018-12-03
char* get_str(void){char str[] = {"abcd"};return str;} char str[] = {"abcd"};定義了一個局部字元數組,儘管是數組,但它是一個局部變數,返回它的地址肯定是一個已經釋放了的空間的地址。 此函數返回的是內部一個局部字元數組str的地址,且函數調用完畢後 此數組被銷毀,所以你返回的指標也就指向一塊被銷毀的記憶體,這種寫法是錯誤的。char* get_str(void){char *str =
Time of Update: 2018-12-03
【問題描述】 對於任意給定的n值(n為整數,且1<=n<=100),計算並顯示n!(階乘)的值。 【範例】輸入:n= 10輸出: 3628800又輸入:n= 20輸出: 2432902008176640000使用整型數組來儲存大數類的每一位,並類比手工乘法的全過程。。#include "stdio.h"#include "stdlib.h"const unsigned int MAX = 10000; //整型數組的最大長度 const long long
Time of Update: 2018-12-03
這段時間其實一直在思考Hadoop的東西,主要是我準備用Dotnet來類比玩一下,這兩天剛好看到
Time of Update: 2018-12-03
很久沒有考試了,而且我剛畢業的時候還非常鄙視這種考試,結果,今年不知道發什麼神經,居然心血來潮,要考個系統架構師,當然,深層次的原因是因為我老在我夫人面前吹噓我如何如何厲害,我夫人就揶揄我說,你去考個進階證證明一下,當時沒答應,不過種子播下了,這個時候還是春天,這不,夏天來了,種子發芽了.6月份決定考一次,7月份報名,本來準備8910複習,結果搞個項目,耽誤了2個月,內心中已經開始打退堂鼓了,但國慶放假在家,閑著無事,覺得要幹點什麼,而且也受了點小刺激,於是決定繼續準備考試.拿著教程就看,看了3
Time of Update: 2018-12-03
方法:這裡用了資料結構棧,實際上棧更方便實現高精度加法。步驟:1、第一個資料加數按輸入順序(高位到低位)入棧1。此時棧頂為最低位 2、第二個資料加數按輸入順序(高位到低位)入棧2。此時棧頂為最低位 3、將棧1、棧2均pop出棧頂做加法,並考慮進位,結果入棧3,這時棧3正好是低位入棧。 4、處理多餘的棧1、棧2。 5、直接pop出棧3,即正好的從高位到低位的結果。 完整的實現代碼如下:#include
Time of Update: 2018-12-03
WMI可以進行的操作很多,想Windows最佳化大師就有很多操作是通過WMI進行的。在這篇文章中主要是給出一個使用WMI來擷取資料的一個範例,如果要擷取其他資料,可以先使用WMI studio tools查詢,然後copy代碼就可以了。我要貼上去代碼也是msdn中的範例了。int GetStorageInfo(CString szClass,REQHARDWAREINFO& HardInfo){HRESULT hres ;HTREEITEMhItem;CString szWQL
Time of Update: 2018-12-03
Windows Heap管理是細粒度的記憶體管理方式。這樣做可以降低記憶體片段,提高記憶體的利用率。每個進程在啟動之初都會有一個預設的Heap,這個我們可以通過GetProcessHeap()返回Heap的控制代碼,其實這個控制代碼就是一款buffer。之後進行記憶體申請都是在這個上面進行的。具體的Heap的結構不怎麼瞭解,初步的heap管理在win 95系統設計揭秘中介紹。這裡就不詳述了。 這裡需要介紹一些API,這些API用於遍曆每個進程的Heap相關資訊。
Time of Update: 2018-12-03
一、題目概述:有一個沒有排序,元素個數為2N的正整數數組。要求把它分割為元素個數為N的兩個數組,並使兩個子數組的和最接近。假設數組A[1..2N]所有元素的和是SUM。模仿動態規劃解0-1背包問題的策略,令S(k, i)表示前k個元素中任意i個元素的和的集合。顯然:S(k, 1) = {A[i] | 1<= i <= k}S(k, k) = {A[1]+A[2]+…+A[k]}S(k, i) = S(k-1, i) U {A[k] + x | x屬於S(k-1, i-1)
Time of Update: 2018-12-03
翻譯的很挫,大家不要介意。原文:http://www.codeproject.com/KB/security/Intro_To_Win_Anti_Debug.aspx 介紹: 最近,逆向工程的工具已經是很豐富了。逆向工程是一個非常值得花時間投入的領域,現在很多關於這個領域的資來源站點點。在我學c++的同時學習逆向工程和組合語言真的協助了我理解代碼的工作,同時也提高了我c/c++和asm編寫的能力。然而,逆向工程也有不好的一面。破解者都是獨立使用他們自己逆向工程的知識來進行逆向別的程式員的
Time of Update: 2018-12-03
十八世紀初,萊布尼茨發明了位元,當時的他肯定沒有預料到二進位在資訊時代會有著如此廣泛的應用。位元以其工作可靠,運算簡單,邏輯嚴密,容易實現等特點,成為了電腦的專用語言。在電腦科學和大量應用數學領域中,二進位記數法是必不可少的。在趣味數學方面,同樣也有廣泛的應用。讓我們先來看一個經典的數學趣題:一工人工作7天,老闆有一段黃金,每天要給工人1/7的黃金作為工資,老闆只能切這段黃金2刀,請問怎樣切才能每天都給工人1/7的黃金?這題不簡單吧?小心別把腦子都想破了。 在給出答案之前,先讓我們看另一個簡單的
Time of Update: 2018-12-03
亂序也分讀/寫,在 x86 IA32 這種體系下只有“讀亂順”,而沒有“寫亂序”,在 x86 IA32 下“寫”是嚴格順序的。對於軟體來說,為了保證 CPU流水線的效率提升不導致混亂,確保 process ordering 與 program ordering 的一致性問題,而使用了“compiler barrier”,“memory barrier”(下面會講到),在某些平台下,如 WINDOWS VISTA 與 WINDOWS 7 以前的版本 “memory
Time of Update: 2018-12-03
安裝vmware-tools(1) 在虛擬機器的VM菜單中選擇“install vmware tools”選項,會自動掛載一個光碟片檔案到/mnt/cdrom下(2) 使用root使用者進入/mnt/cdrom執行# rpm -i VMWarexxxx.rpm(3) 如果能看到/mnt/hgfs目錄那就說明都配置好了,只需要在虛擬機器“VM”菜單中選擇"setting",然後在“option”項裡選擇“share