一、偽**規範總結
1、縮排表示塊的結構
實際上這個我們可以聯想python來理解
2、while 後面跟上end比較好,for *** to/downto *** 後面則不需要
3、大部分都類似於c的**
4、部分操作可以由英文來代替
5、一般不使用全域性變數,復合資料往往組織為物件來進行操作
二、演算法複雜度(跳過)
三、分治策略問題
解決的方法主要有:
1、代入法:猜測乙個界,再運用數學歸納法證明其正確性
2、遞迴樹法:將遞迴式轉化為遞迴樹來計算
3、運用離散數學解遞推式的方法
使用情景:
以除的方式縮小問題規模後,各個部分的時間複雜度是相加而不是相乘
這點我們在矩陣乘法的分治演算法中可以看出來
實際上它們有比較類似的遞推式
t(n)=2(或者其他常數)*t(n/2)+f(n)
四、隨機演算法
這部分的分析我們基於統計的方法,實際上我們給每種資料的輸入組合乙個概率值,並根據每種情況的執行時間計算出其期望大小作為我們的結果。
後面會運用比較複雜的概率方法,典型的問題有僱傭問題等。
演算法第一部分(1)
1.學習演算法,最好先了解陣列,鍊錶,堆,棧等線性結構 2.對遞迴,遍歷,演算法複雜度有著常識性理解 3.主要包括三方面的知識 線性 主要是排序 樹形結構 圖形結構 定義 選擇排序每次都從剩下的n i 個元素找到最小的數,並與i位置的數交換位置。public void selectionsort t...
linux筆記第一部分
開源系統,可以自由傳播,目前後台服務端絕大部分都是linux程式執行平台,主要是因為以下幾點 unix的優秀特性 linux的常用版本redhat和centos,目前主流使用的centos7 centos6安裝鏈結 因linux不同於windows,所以linux事實上並沒有和windows一樣的c...
演算法導論 第一部分 基礎知識
第二章 1 插入排序 原址,複雜度為n 2 最佳執行時間為線性,最壞情況為n 2 void sort array int array array i 1 key for int k 0 k 7 k cout array k cout end of the sort 2 歸併排序 merge sort...