原创 linux 下文件的路徑
1、“./”當前路徑 比如運行當前路徑下的可執行程序test,在控制檯下輸入“./test” 2、“../”當前目錄的上一層目錄
原创 文本編輯器vi
vi編輯器由加州大學伯克利分校,Bill Joy 研究開發。其是所有Unix及Linux系統下標準的編輯器,它的強大不遜色於任何最新的文本編輯器。對Unix及Linux系統的任何版本,vi編輯器是完全相同的,其是Linux
原创 循環(迭代/遞推)與遞歸
循環(迭代)與遞歸的區別 1。遞歸算法與迭代算法的設計思路區別在於:函數或算法是否具備收斂性,當且僅當一個算法存在預期的收斂效果時,採用遞歸算法纔是可行的,否則,就不能使用遞歸算法。 當然,從理論上說,所有的遞歸函數都可以轉換爲迭代函
原创 五大常用算法之三:貪心算法
貪心算法 一、基本概念: 所謂貪心算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的局部最優解。 貪心算法沒有固定的算法框架,算法設計的關鍵是
原创 遞歸與迭代的區別
遞歸的基本概念:程序調用自身的編程技巧稱爲遞歸,是函數自己調用自己. 一個函數在其定義中直接或間接調用自身的一種方法,它通常把一個大型的複雜的問題轉化爲一個與原問題相似的規模較小的問題來解決,可以極大的減少代碼量.遞歸的能力在於用有限
原创 五大常用算法之二:動態規劃算法
一、基本概念 動態規劃過程是:每次決策依賴於當前狀態,又隨即引起狀態的轉移。一個決策序列就是在變化的狀態中產生出來的,所以,這種多階段最優化決策解決問題的過程就稱爲動態規劃。 二、基本思想與策略 基本思想與分治法類
原创 五大常用算法之四:回溯法
1、概念 回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。 回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標。但當探索到某一
原创 關於比賽安排的求解問題
設有2^n(n<=6)個球隊進行單循環比賽,計劃在2^n-1天內完成,每個隊每天進行一場比賽。設計一個比賽的安排,使在2^n-1天內每個隊都與不同的對手比賽。例如n=2時的比賽安排爲: 隊 1 2 3 4 比賽 1-2 3
原创 五大常用算法之一:分治算法
分治算法 一、基本概念 在計算機科學中,分治法是一種很重要的算法。字面上的解釋是“分而治之”,就是把一個複雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題
原创 跟我一起寫Makefile
makefile 介紹 make命令執行時,需要一個 makefile 文件,以告訴make命令需要怎麼樣的去編譯和鏈接程序。 首先,我們用一個示例來說明makefile的書寫規則。以便給大家一個感性認識。這個示例來源於gnu的make使
原创 c++開發小技巧
1、#ifndef NDEBUG cout<<"something"<<endl; #endif 當需要在測試時輸出一些信息,以查看程序的執行情況時,使用上面的語句,輸出相關信息;待最終打包程序時,在程序的頭部添加語句 #d
原创 TinyXml 文檔
TinyXml 文檔 TinyXML是一個簡單小巧,可以很輕易集成到其它法度中的C++ XML解析器。 它能做些什麼 簡單地說,TinyXML解析一個XML文檔並由此生成一個可讀可批改可保存的文檔對象模型(DOM)。 XML的意思是“
原创 iostream 迭代器
1、istream_iterator 讀取輸入流 ostream_iterator 讀取輸出流 2、幾個程序 (1) #include <iostream> #include <iterator> #include <v
原创 c++判斷文件是否存在
方法1:利用fstream 和ifstream (1)用fstream #include <iostream> #include <fstream> using namespace std; #define FILENAME "te
原创 尾遞歸
關於遞歸操作,相信大家都已經不陌生。簡單地說,一個函數直接或間接地調用自身,是爲直接或間接遞歸。例如,我們可以使用遞歸來計算一個單向鏈表的長度: public class Node { public Node(int value,