• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            xyjzsh

            插入排序vs希爾排序

            什么是插入排序?
            在插入排序法中,將檢查數(shù)組中的每個元素,將它插入排序中的元素的適當位置,當最后一個元素插入到它適當?shù)奈恢脮r,這個數(shù)組就排好序了。例如,

            假如我們要對一個有5個元素的數(shù)組進行升序排列,假設(shè)第一個元素的值被假定為已排好序了,那么我們將第2個元素插入到已排序好的數(shù)組中的適當位置上,使得數(shù)組應(yīng)該是排序好的。依次類推,將第3個插入到到已排序好的數(shù)組中的適當位置,使得插入后數(shù)組仍然是排序好的,。。。。。。
            下面是一個插入排序的Demo:
            int tarArr[]={10,1,35,12,7,17,66,6,56,26};
            int size = sizeof(tarArr)/sizeof(tarArr[0]);

            void insertSort(void)
            {
                
            int i=0,j=0;
                
            for(i=1;i<size;i++)
                
            {
                    
            int nextValue = tarArr[i];
                    
            for(j=i-1;j>=0;j--)
                    
            {
                        
            if(nextValue<tarArr[j])
                            tarArr[j
            +1]=tarArr[j];
                        
            else
                        
            {
                            
            break;
                        }

                    }

                    tarArr[j
            +1]=nextValue;
                }

            }

            下面來介紹一下希爾排序:
            希爾排序就是將要排序的數(shù)據(jù)先分成如果組,對每一組實行插入排序。
            代碼如下:
            int tarArr[]={10,1,35,12,7,17,66,6,56,26};
            int size = sizeof(tarArr)/sizeof(tarArr[0]);

            void shellSort(void)
            {
                
            int gap =0,i=0,j=0;
                
            for(gap = size/2;gap>0;gap/=2)
                
            {
                    
            for(i=gap;i<size;i+=gap)
                    
            {
                        
            int nextValue = tarArr[i];
                        
            for(j=i-gap;j>=0;j-=gap)
                        
            {
                            
            if(nextValue<tarArr[j])
                                tarArr[j
            +gap] = tarArr[j];
                            
            else
                            
            {
                                
            break;
                            }


                        }

                        tarArr[j
            +gap] = nextValue;
                    }

                }

            }

            posted @ 2011-02-23 17:44 呆人 閱讀(352) | 評論 (0)編輯 收藏

            通過函數(shù)參數(shù)的類型推導(dǎo)模板版本

            模板函數(shù)如下:
            template<class T>
            T max(T x, T y)
            {
               return x>y ? x:y;
            }

            void testMax(void)
            {
                max(1,2);//因為兩個參數(shù)都是int型,所以編譯器會根據(jù)參數(shù)而推導(dǎo)出使用max<int>這個版本
                max(1.2,3.4);//通過兩個參數(shù)都為double型,推導(dǎo)出使用max<double>這個版本
                max('a',12);//會出現(xiàn)編譯錯誤,因為兩個參數(shù),一個為char ,另一個為int ,所以編譯器無法根據(jù)類型推導(dǎo)出使用哪一個版本
                //可以通過顯示的制定使用哪個版本,從而解決這個問題
                max<int>('a',12);
            }

            posted @ 2011-02-23 11:13 呆人 閱讀(459) | 評論 (0)編輯 收藏

            2010年總結(jié)——關(guān)于技術(shù)和生活

            技術(shù)書:
            1.《c++程序設(shè)計語言》——c++的老爹的大作。讀了第一部分和第二部分。關(guān)于STL的所有內(nèi)容掠過。
            2.《Sqlite》——嵌入式關(guān)系數(shù)據(jù)庫的介紹,對理解關(guān)系數(shù)據(jù)庫很有幫助。本來想研究一下sqlite的源代碼,我發(fā)現(xiàn)我水平有限,還沒那水平,但愿有一天我這美好的愿望能實現(xiàn)。
            3.《算法導(dǎo)論》。買這本書是因為我對KMP算法的費解。不過我覺得這本書寫的很不錯,數(shù)據(jù)結(jié)構(gòu)和基本算法寫的都不錯。
            4.《win32多線程程序設(shè)計》還沒讀完,明年希望結(jié)合這本書寫個線程池出來。
            5.《Inside the c++ object model》解釋c++的底層實現(xiàn),對c++功底要求高,我只懂了部分內(nèi)容,不過對virtual function的理解很有幫助。
            6.《Effective c++》更適合c++初學(xué)者的書。很不錯。
            7.《你的燈還亮著嗎》關(guān)于程序員。

            其他書:
            1.《蘇菲的世界》哲學(xué)入門書,很有意思的一本書。
            2.《荷包里的單人床》——張小嫻,關(guān)于女人和愛情。
            3.《目送》——龍應(yīng)臺,關(guān)于親情和無奈。感動。
            4.《活著》——余華,關(guān)于生活與活著,一本讓我淚流滿面的書。
            5.《與眾不同的心理學(xué)》很有道理的一本書,印象最深的是:人們相信星座,是因為把大眾的東西個性化啦!我覺得很有道理。

            廣播劇:致我們終將失去的青春。在此列出是因為我是如此的喜歡這部廣播劇。以至于我覺得它是值得我記住的。

            2010年還是有收獲的一年,畢業(yè)工作。平靜也算充實。但是還有很多做得不夠,不夠淡定,容易被瑣碎的事心煩。2011年不再浮華,努力學(xué)習(xí)!好好工作!!

            2011年要做得事情還有很多。
            要看的技術(shù)書:
            1.《泛型編程和STL》
            2.《編程之美》
            3.《win32程序設(shè)計》+線程池模型程序代碼
            4.《大話設(shè)計模式》
            5.《Domain-Driven Design》
            要看一下經(jīng)濟類的書

            要看的其他書:
            1.《穆斯林的葬禮》
            2.張小嫻散文集

            要去報個英語口語班,英語學(xué)習(xí)不能怠慢啊,否則英語會廢掉的。

            2010年還剩沒幾天啦,開開心心的回家過春節(jié)!!好好休息一下,2011年希望自己天天開心,日子過得充實!!多讀書讀好書!!加油!!

            posted @ 2011-01-27 17:11 呆人 閱讀(251) | 評論 (0)編輯 收藏

            Effective C++書評

            筆者c++的經(jīng)驗:半年的c++開發(fā)經(jīng)驗。
            相比于前些日子讀的《深入探索c++對象模型》,這本書更適合于初學(xué)者。侯捷老師翻譯的清晰流暢。
            本書有9章共55個item。
            本書的前四章,個人認為對于有一定c++基礎(chǔ)的人來說都會受益匪淺。告訴了你很多的編程習(xí)慣。好的編程習(xí)慣是程序健壯性的一個重要保障。
            書中不僅告訴你怎么樣做,還告訴你為什么這樣做,這讓我突然想起來以前的老大跟我說的話,不僅要知道how,還要知道why。這本書會告訴你why。
            很多事情知道了why,how就會很好理解。

            第五章因為牽涉到異常的處理,我對c++的異常不是很了解,還要差更多的資料再來讀第五章。第五章只是大略看了一下。

            第六章繼承和面向?qū)ο笤O(shè)計。
            我覺得讀這章更適合于設(shè)計,大型項目的時候用的多一些,對于平時寫點兒小程序,貌似是用不到,不過他對于public繼承和private繼承的描述還是讓人有種恍然大明白的感覺。(*^__^*) 嘻嘻……

            第七章 模板與泛型編程
            本章打算與侯捷老師的佳作《泛型編程與STL》結(jié)合看。書已經(jīng)買到啦,春節(jié)回來繼續(xù)努力~\(≧▽≦)/~啦啦啦。

            第八章第九章
            大略看了一下。不發(fā)表意見啦。

            posted @ 2011-01-27 16:08 呆人 閱讀(316) | 評論 (0)編輯 收藏

            [算法題]輸出從1到1000的數(shù)[轉(zhuǎn)載]

            有這樣一個面試題——請把從1到1000的數(shù)打印出來,但你不能使用任何的循環(huán)語句或是條件語句。更不能寫1000個printf或是cout用C/C++語言

            個人比較贊賞的思路是下面兩個:

            1. 函數(shù)指針數(shù)組結(jié)合n/1000的結(jié)果作為數(shù)組的index。

             1void yesprint(int i);
             2void noprint(int i);
             3 
             4typedef void(*fnPtr)(int);
             5fnPtr dispatch[] = { yesprint, noprint };
             6 
             7void yesprint(int i) {
             8    printf("%d\n", i);
             9    dispatch[i / 1000](i + 1);
            10}

            11 
            12void noprint(int i) /* do nothing. */ }
            13 
            14int main() {
            15      yesprint(1);
            16}

            17

            2. 構(gòu)造函數(shù)結(jié)合靜態(tài)變量結(jié)合數(shù)組。

             1 class Printer
             2 {
             3 public:
             4     Printer() { static unsigned i=1; cout << i++ << endl;; }
             5  
             6 };
             7  
             8 int main()
             9 {
            10     Printer p[1000];
            11 }
            12 

            posted @ 2011-01-17 10:30 呆人 閱讀(364) | 評論 (0)編輯 收藏

            深入探索C++對象模型

                 對于有半年c++學(xué)習(xí)經(jīng)驗的我看這本書的時候確實挺吃力的,不過也正是因為很多地方不懂,所以在看這本書的時候查了很多資料,有了更多的收獲。
                  首先是看不懂的地方:對于虛擬繼承和多重繼承的內(nèi)容,我只是瀏覽了一下,因為我的能力實在是看不了這兩部分的內(nèi)容。
                  
                  我之所以看這本書,是源于我對一個問題很糾結(jié):這個問題是:指向類成員函數(shù)的指針的問題。這個問題讓我很糾結(jié),可是這本書對這個問題講解的確實很透徹(第四章是對這個問題的講解)。
                  這本書讓我印象最深的是對于多態(tài)的實現(xiàn)(動態(tài)綁定)的講解。virtual table的使用。通過它讓我對于繼承、多態(tài)有了更深刻的了解。
                  
                  這本書中有很多的圖表用來表示class object的結(jié)構(gòu),清晰明了。值得一看!

                  這本書看完后,有收獲,但是離吃透這本書還差的遠,我還要繼續(xù)努力!差距還是很大滴,繼續(xù)努力!!

            posted @ 2011-01-11 17:15 呆人 閱讀(341) | 評論 (0)編輯 收藏

            使用位

             1 #include<windows.h>
             2 #pragma pack(push,1)
             3 typedef    struct    tagBite
             4 {
             5     UINT    bite3:8;
             6     UINT    bite2:8;
             7     UINT    bite1:8;
             8     UINT    bite0:8;
             9 }HBITE,*PHBITE;
            10 typedef    union    tagDData
            11 {
            12     DWORD    dword;
            13     BYTE    byte[4];
            14     HBITE    bite;
            15 }DDATA,*PDDATA;
            16 #pragma pack(pop)
            測試
             1void testBite()
             2{
             3    PHBITE pHbite = new HBITE;
             4    pHbite->bite0 =0;
             5    pHbite->bite1 =0;
             6    pHbite->bite2 =1;
             7    pHbite->bite3 =1;
             8
             9    UINT *pData = (UINT*)pHbite;
            10    printf("data=%d\n",*pData);
            11
            12    HBITE hBite;
            13    UINT uData=10;
            14    memcpy(&hBite,&uData,sizeof(uData));
            15
            16    printf("hBite.bite3=%d,hBite.bite2=%d\n",hBite.bite3,hBite.bite2);
            17}

            posted @ 2011-01-04 14:15 呆人 閱讀(332) | 評論 (0)編輯 收藏

            適合于網(wǎng)絡(luò)傳輸?shù)囊环N數(shù)據(jù)結(jié)構(gòu)

            在網(wǎng)絡(luò)傳輸中要傳輸?shù)臄?shù)據(jù)往往是不定長的,一般我們可以分配足夠的空間,使用某個字段用于記錄傳輸?shù)臄?shù)據(jù)的長度。然后對數(shù)據(jù)壓縮后再進行傳輸。

            定義數(shù)據(jù)結(jié)構(gòu)
            typedef struct tagTransferData
            {
               ///一些其他信息////
               DWORD dataSize;
               char buffer[1];//定義一個可變長度的數(shù)組
            }Data,*PData;
            使用:
            PData pData = (PData)malloc(10000);
            memset(pData,0,10000);
            。。。。。。。。。
            char sendData[]="good morning everyone!";
            strcpy(pData->buffer,sendData);
            pData->dataSizse = strlen(sendData);
            。。。。。。。。。
            delete pData;

            該數(shù)據(jù)結(jié)構(gòu):對于一塊內(nèi)存,開始記錄了后面要傳輸數(shù)據(jù)的大小,緊接著是要傳輸?shù)臄?shù)據(jù)。是的數(shù)據(jù)比較緊湊,易于管理。
            個人認為:分配的多余的空間使用數(shù)據(jù)壓縮后,不會導(dǎo)致傳輸太多的無用數(shù)據(jù)。

            posted @ 2010-12-21 10:45 呆人 閱讀(592) | 評論 (1)編輯 收藏

            WSAStartup函數(shù)的使用

            int WSAStartup(
            __in          WORD wVersionRequested,
            __out         LPWSADATA lpWSAData
            );

            WSAStartup

              式: int PASCAL FAR WSAStartup( WORD wVersionRequested,  LPWSADATA lpWSAData );

              數(shù):  wVersionRequested 欲使用的 Windows Sockets API 版本

            lpWSAData  指向 WSADATA 資料的指標

            傳回值:  成功 – 0

                       失敗 - WSASYSNOTREADY / WSAVERNOTSUPPORTED /  WSAEINVAL

            說明: 此函式「必須」是應(yīng)用程式呼叫到 Windows Sockets DLL 函式中的第一個,也唯有此函式呼叫成功後,才可以再呼叫其他 Windows  Sockets DLL 的函式。此函式亦讓使用者可以指定要使用的 Windows Sockets API 版本,及獲取設(shè)計者的一些資訊。程式中我們要用 Winsock 1.1,所以我們在程式中有一段為:

            WSAStartup((WORD)((1<<8)|1),(LPWSADATA) &WSAData)

            其中 ((WORD)((1<<8)|1) 表示我們要用的是 Winsock 1.1」版本,而WSAData 則是用來儲存由系統(tǒng)傳回的一些有關(guān)此一 Winsock Stack 的資料。

            The WSAStartup function initiates use of the Winsock DLL by a process.










            在使用WSAStartup的使用出現(xiàn)了下面的問題:

            源碼:
            #include "stdafx.h"
            #include
            <windows.h>

            int main()
            {
                WSADATA wsa
            ={0};
                WSAStartup(MAKEWORD(
            2,2),&wsa);
                
                
            return 0;
            }
            出現(xiàn)的錯誤信息:
            錯誤 1 error LNK2019: 無法解析的外部符號 _WSAStartup@8,該符號在函數(shù) _main 中被引用 CompletePortDemo.obj CompletePortDemo
            解決方法:添加#pragma comment(lib,"ws2_32.lib")
            正確代碼:
            #include "stdafx.h"
            #include
            <windows.h>
            #pragma    comment(lib,
            "ws2_32.lib")

            int main()
            {
                WSADATA wsa
            ={0};
                WSAStartup(MAKEWORD(
            2,2),&wsa);
                
                
            return 0;
            }

            posted @ 2010-12-17 14:47 呆人 閱讀(4109) | 評論 (0)編輯 收藏

            vs2008只生成dll,沒有生成lib的解決方案

            原因缺少.def文件。
            在項目中添加一個def文件。eg. test.def.
            然后
            項目屬性->鏈接器->輸入->模塊定義文件->在里面添上test.def即可解決問題

            posted @ 2010-12-15 17:48 呆人 閱讀(3828) | 評論 (1)編輯 收藏

            僅列出標題
            共6頁: 1 2 3 4 5 6 
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲一级Av无码毛片久久精品| 久久精品aⅴ无码中文字字幕重口| 伊人色综合久久| 丁香五月综合久久激情| 亚洲AⅤ优女AV综合久久久| 亚洲精品国产第一综合99久久| 囯产极品美女高潮无套久久久 | 一本一道久久精品综合| 久久久久免费精品国产| 亚洲国产日韩欧美综合久久| 色婷婷综合久久久久中文一区二区 | 久久不见久久见免费影院www日本| 最新久久免费视频| 久久国产精品无码HDAV| 免费精品久久久久久中文字幕| 天天爽天天狠久久久综合麻豆| 国产日韩久久久精品影院首页| 久久久久青草线蕉综合超碰| 久久精品国产91久久麻豆自制| 久久亚洲精品国产精品婷婷| 久久国产精品99精品国产987| 波多野结衣久久一区二区| 久久se精品一区二区| 久久久久亚洲精品日久生情| 999久久久免费国产精品播放| 亚洲国产另类久久久精品小说| 精品久久久久久无码人妻蜜桃| 精品久久久久久无码专区| 伊人久久精品影院| 国产成人精品久久亚洲| 精品国产乱码久久久久久郑州公司| 人妻无码久久精品| 91久久精品国产91性色也| 久久亚洲精品国产精品| 久久久黄色大片| 欧洲性大片xxxxx久久久| 久久久国产精品福利免费| 久久久无码人妻精品无码| 久久香综合精品久久伊人| 久久人搡人人玩人妻精品首页 | 国产毛片欧美毛片久久久|