演算法導論第一部分筆記

2021-10-20 16:28:47 字數 591 閱讀 4670

一、偽**規範總結

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...