3.1遞迴演算法
一、1、把大型複雜的問題,層層分解得到規模小的小問題來求解
2、基本思想:層層分解
二、步驟
1、分析問題,尋找遞迴;找大規模和小規模之間的關係
2、找出停止條件
3、設計函式,確定引數
三、求1-100
遞迴:fn(n)=n+fn(n-1)
終止條件:f(1)=1
**:int fn(int n)
注意:先處理終止條件,作為單獨的項來處理。
注意:①出口;②形參要與遞迴對應(資料規模)-遞迴關係的表示(返回值)。
1、在主函式中呼叫,層層呼叫。
2、返回值時得到小規模的解才行(逐步回溯,求解)
四、作用
在呼叫中使問題簡化,回溯過程得到問題的解。
3.1.2集合的全排列
一、1、先排高位,再關注少一位
2、大問題化小
3、列舉所有高位情況,來確定子問題
4、需要列舉!(重要)
3.3全排列的遞迴演算法
1、至少需要兩位以上。
2、舉例從k-m的資料全排列(多種情況就列舉)
3、遞迴呼叫,做全排列
4、恢復原來的資料-資料交換(重要)(二次交換-列舉重要問題)
3.3.8半數集
求幾個元素
半數集是多重集
用到遞迴,不忘關係原來的數
【注意】使用陣列儲存計算過的結果,避免重複,提高效率
3.3.12記憶化搜尋
已知結果記錄-加陣列
4、復合資料型別
一、1、定義結構體變數的格式:
struct 結構體型別名 變數名列表;
//struct 型別名 變數名
2、多的變數用陣列
3、同種型別可以放在一起
4、賦值時交換為整體交換
二、過載運算子
在結構體內定義成員函式時,對成資料成員的操作,省略結構體變數。
過載《運算子,來作比較
compare函式來作比較
week one 遞迴演算法 復合資料型別)
目標 1.熟悉物件導向相關知識 2.熟練運用c 內容編寫物件導向程式 3.了解軟體開發的基本流程,學會物件導向軟體開發方法 4.能夠開發小型軟體系統。一 遞迴演算法 程式直接或間接呼叫自身的程式設計技巧稱為遞迴演算法 recursion 直接或間接呼叫自身的函式稱為遞迴函式。特點 把乙個大型複雜的問...
C語言學習知識總結day1(基本結構,資料型別)
一 以輸出 hello world 為例 include include 包含 包含乙個叫stdio.h的檔案 std 標準 i 輸入 o 輸出 int main main 主函式 程式的入口 main函式有且僅有乙個 int是整型的意思 main前面的int表示main函式呼叫返回乙個整型值 二 ...
資料結構(C語言版)第1章知識點總結
1 資料是對客觀事物的符號表示,其基本單位是資料元素。2 資料物件是性質相同的資料元素的集合,是資料的乙個子集。3 資料結構是相互之間存在一種或多種特定關係的資料元素的集合。根據資料元素之間關係的不同特性,資料元素相互之間一共有四種關係結構,分別是集合 線性結構 樹形結構 圖狀結構或網狀結構。4 抽...