原创 三大簡單排序算法——插入、選擇、冒泡

排序作爲一個如此經典與常見的問題,排序算法自然也是各種各樣、各具特點。 本文主要討論三個時間複雜度爲O(n2)的簡單排序算法,即插入排序、選擇排序和冒泡排序。 在Wiki了排序算法之後,瞬間感覺世界之大排序算法之多。

原创 基本數據結構——堆

堆(二叉堆)作爲一種比較重要的數據結構,完全二叉樹的線性存儲。其典型的應用就是堆排序和優先隊列。 堆(Heap) 堆(二叉堆)是一個數組,也可以被看做一個近似的完全二叉樹。將二叉樹從頂層向底層,從左向右,從1開始編號,直到二

原创 【離散數學】計數/排列組合

離散數學第三篇,討論基本的計數技術——排列組合及其推廣。組合數學是離散數學的重要組成部分,這裏比較簡略,待到有時間詳細學習組合數學後再討論一些複雜一點的問題。那何爲組合數學呢?組合數學(Combinatorics)是研究一定條件

原创 kmp算法 in POJ【POJ3461,POJ2752,POJ2406,POJ1961】

POJ_3461 Oulipo 簡單的kmp使用,找出第一個字符串在第二個字符串中出現的次數 #include<iostream> #include<stdlib.h> #include<cstring> using namespace

原创 常識性算法一彈

剛開始學習算法,做一些題的時候,總會發現一些特別基礎的可以說是常識性的東西自己沒有掌握,寫代碼完全是靠模擬(意淫)。這些算法一般不涉及到數據結構,只是一些很基礎的簡單問題,是解決某些問題的一個步驟。所以是時候總結(積累)一波了。

原创 常用數據結構——隊列及其應用

隊列和棧作爲一種最簡單最基本的常用數據結構,可以說在許多方面都應用廣泛。在程序運行時,他們可以保存程序運行路徑中各個點的信息,以便用於回溯操作或其他需要訪問已經訪問過的節點信息的操作。這裏對隊列的特點、作用做出描述、並簡單地用不同途徑實現

原创 C++語法入門【2】函數

C++函數具有一些C語言不具有的特性,例如內聯函數、引用參數、const參數、默認參數、函數重載、函數模板等特性。這些特性將在下一篇介紹。這裏先介紹函數的基本知識。 函數 In C/C++ 函數 何爲函數,編程語言中的函

原创 C++語法入門【1】命名空間、數據類型

這一篇主要關於我最近在看C++時的一些感想和一些語法細節。 C++進階之路(圖片來自知乎): C++ Started 目前仍然算是開始階段,C++ Primer Plus 是還沒有看完的。 在寫下了hello,wo

原创 常用數據結構——棧及其應用

隊列和棧作爲一種最簡單最基本的常用數據結構,可以說在許多方面都應用廣泛。在程序運行時,他們可以保存程序運行路徑中各個點的信息,以便用於回溯操作或其他需要訪問已經訪問過的節點信息的操作。這裏對棧的特點、作用做出描述、並簡單地用不同途徑實現

原创 【離散數學】高級計數技術

這是離散數學的第四篇,討論高級計數技術。同步發佈與個人博客,上一篇(【離散數學】計數/排列組合)討論了計數以及排列組合,二項式定理等。但是僅憑排列組合等手段依然無法解決許多計數問題。這裏首先討論通過遞推關係來求解計數問題,並介紹有遞推關

原创 The Linux Command Line

This passage is about getting started with GNU/Linux by reading The Linux Command Line. Chinese version is available he

原创 【離散數學】基本結構——集合、函數、序列、矩陣

離散數學第二篇,首先討論常用工具——集合,並討論在集合基礎之上的一系列結構:函數、序列、矩陣、關係等。所有內容在以前的知識體系中均有涉獵,此處是從集合的角度去考慮這些內容。我認爲其中要數集合的基數這一小節中可數集和不可數集的部分最爲抽象

原创 矩陣快速冪

快速冪 快速冪算法很熟悉很容易理解,原理 nm={(n2)m/2(n2)m/2⋅nm爲偶數m爲奇數nm={(n2)m/2m爲偶數(n2)m/2⋅nm爲奇數 二分可以將時間複雜度由O(n)O(n) 降到O(logn)O(log⁡n) 。

原创 ALgorithms started

前言 Algorithm入門,隨便寫一寫,算法複雜度分析,和幾個簡單的問題——最大子序列之和、最大公因數、二分查找。 複雜度分析 常用記號O(f(n))O(f(n)) ,表示上界,Ω(f(n))Ω(f(n)) 表示下界,Θ(f(n))Θ

原创 【離散數學】邏輯與證明

離散數學是計算機專業很重要的基礎課程,是後續數據結構,算法的基礎。在學習數據結構的時候,接觸到圖論算法的時候,遇到了困難。於是決定回來學習離散數學。離散數學(課本)包括了數理邏輯、集合論、計數技術、關係、樹、圖和布爾代數等。每個章節都