原创 【Python排序搜索基本算法】之二叉樹的深度和寬度

        接着上一個二叉樹的主題,用python寫一下求二叉樹深度和寬度的代碼,求深度用遞歸;求寬度用隊列,然後把每層的寬度求出來,找出最大的就是二叉樹的寬度,如下: import queue class Node: de

原创 【Python排序搜索基本算法】之Dijkstra算法

        Dijkstra算法和前一篇的Prim算法非常像,區別就在於Dijkstra算法向最短路徑樹(SPT)中添加頂點的時候,是按照ta與源點的距離順序進行的。OSPF動態路由協議就是用的Dijkstra算法。下面還以那個圖的例

原创 NDN路由--OSPFN安裝與配置

       現在的IP網絡的問題已經暴露的很多了,各種改進的網絡架構與設想非常多,但其中以基於內容爲中心的網絡發展最爲迅速,其中,NDN的架構最爲完整,代碼也比較成熟。OSPFN是基於CCNX的,所以之前要安裝CCNX,簡單的./con

原创 大整數乘法python3實現

        由於python具有無限精度的int類型,所以用python實現大整數乘法是沒意義的,但是思想是一樣的。利用的規律是:第一個數的第i位和第二個數大第j位相乘,一定累加到結果的第i+j位上,這裏是從0位置開始算的。代碼如下:

原创 python3下multiprocessing、threading和gevent性能對比----暨進程池、線程池和協程池性能對比

        目前計算機程序一般會遇到兩類I/O:硬盤I/O和網絡I/O。我就針對網絡I/O的場景分析下python3下進程、線程、協程效率的對比。進程採用multiprocessing.Pool進程池,線程是自己封裝的進程池,協程採用

原创 【好玩的計算機視覺】KNN算法手寫數字識別

OCR應用非常廣泛,而且有許多方法,今天用KNN算法實現簡單的0-9手寫數字識別。本程序使用OpenCV 3.0和Python 3。 KNN算法是K近鄰分類算法,屬於機器學習中的監督學習,需要一定量的帶標籤的輸入樣本數據進行“訓練”,然

原创 玩轉Intel Edison物聯網開發套件

Intel Edison這個板子雖然已經出來一兩年了,但至今在國內不是很火,網上的資料也不是很多,尤其是中文的資料,下面我們簡單搞起。我使用操作系統是Ubuntu 15.04 x64。 這個是我拿到的板子,可以看到左上角有兩個mini

原创 【從0開始Tornado建站】總體設計

        Tornado是一個非阻塞的web服務器,也是python的web框架中非常優秀的一款。網上關於django的tutorial非常多而且詳細,關於tornado的使用就非常少了,我想以我從0開始的方式一步一步用這個優秀的t

原创 【從0開始Tornado建站】羣聊

        羣聊的前臺主要代碼: {%block content%} <!--<p class='text-success h3'>測試版本,每天凌晨4:00清水,enjoy it~~:-)</p>--> <ul> {%for i

原创 python解數獨--世界最難數獨2.3秒完成

        “芬蘭數學家因卡拉,花費3個月時間設計出了世界上迄今難度最大的數獨遊戲,而且它只有一個答案。因卡拉說只有思考能力最快、頭腦最聰明的人才能破解這個遊戲。”這是英國《每日郵報》2012年6月30日的一篇報道。看完這個新聞就對數

原创 【從0開始Tornado建站】主頁的登錄和顯示最新文章

        登錄只要放在主頁就可以了,這裏爲了美觀,把<form>用bootstrap的form-inline類修飾,如下樣子: 前臺代碼如下: {%extends 'main.html'%} {%block header%} <

原创 SQLite3基本使用從shell到python

        SQLite是一個輕量級的關係型數據庫,在訪問量不超過10萬PV的中小網站中使用綽綽有餘。而且使用方便,接口簡單,下面從命令行和python接口兩方面介紹SQLite3的基本操作。         在linux終端中,通過

原创 【從0開始Tornado建站】註冊

        基本的註冊功能有用戶名、密碼和密碼確認,當然郵箱確認和基本信息填寫在高階的時候完善,現在只完成基本功能。在register.html寫如下內容: {%extends 'main.html'%} {%block cont

原创 【Python排序搜索基本算法】之拓撲排序

        拓撲排序是對有向無環圖的一種排序,滿足如下兩個條件: 1.每個頂點出現且只出現一次; 2.若A在序列中排在B的前面,則在圖中不存在從B到A的路徑。 如上的無環有向圖,v表示頂點:v=['a','b','c','d','

原创 【Python排序搜索基本算法】之堆排序

        堆是一種完全二叉樹,堆排序是一種樹形選擇排序,利用了大頂堆堆頂元素最大的特點,不斷取出最大元素,並調整使剩下的元素還是大頂堆,依次取出最大元素就是排好序的列表。舉例如下,把序列[26,5,77,1,61,11,59,15,