【算法】遞歸、搜索與回溯——簡介

簡介:遞歸、搜索與回溯,本節博客主要是簡單記錄一下關于“遞歸、搜索與回溯”的相關簡單概念,為后續算法做鋪墊。

目錄

  • 1.遞歸
    • 1.1遞歸概念
    • 2.2遞歸意義
    • 2.3學習遞歸
    • 2.4寫遞歸代碼步驟
  • 2.搜索
  • 3.回溯與剪枝

遞歸、搜索、回溯的關系:
在這里插入圖片描述

1.遞歸

1.1遞歸概念

函數自己調用自己

2.2遞歸意義

遞歸具有多種意義,比如二叉樹的遍歷、快排、歸并…

本質:用于解決主問題的方法f,在子問題中也可以適用,即有限“套娃”

2.3學習遞歸

  • 遞歸展開圖
  • 多練習題目
  • 宏觀看待遞歸過程
    • 不要在意遞歸細節展開
    • 將遞歸函數看成一個黑盒
    • 認為黑盒可以解決此問題

2.4寫遞歸代碼步驟

遞歸代碼往往比較簡短,但是要注意思考的步驟:

  • 1.函數頭的設計:找相同的子問題,根據需要設計參數
  • 2.函數體的編寫:只關心一個子問題的解決方案
  • 3.函數結束:注意遞歸結束條件

2.搜索

搜索 分為深度 優先搜索(dfs)廣度搜索(bfs) ,仍屬于暴力遍歷

以二叉樹為例,來解釋dfs與bfs:
dfs:
在這里插入圖片描述
bfs:
在這里插入圖片描述

拓展:全排列問題也可以用深度優先遍歷來進行解決。
例如:
在這里插入圖片描述

3.回溯與剪枝

回溯:嘗試某種情況發現走不通所進行的回到最近分界點的過程。

剪紙:當通過會u是回到分界點時,已經確定某一條魯不具有可行性,從而排除這種選擇稱之為剪枝。

在這里插入圖片描述


EOF

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15692.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ICML2024 定義新隱私保護升級:DP-BITFIT新型微調技術讓AI模型學習更安全

DeepVisionary 每日深度學習前沿科技推送&頂會論文分享,與你一起了解前沿深度學習信息! 引言:差分隱私在大模型微調中的重要性和挑戰 在當今的深度學習領域,大型預訓練模型的微調已成為提高各種任務性能的關鍵技術。然而&am…

推特熱帖:大語言模型自薦能夠替代的20種人類工作!快來看你是否需要轉行!

最近推特上有一個例子引起了廣泛的討論,事情的起因是這樣的:網友讓 GPT-4o 預測一下自己未來將會替代人類哪些工作? 這聽起來很有趣!GPT-4o會給出什么樣的預測呢? 3.5研究測試:hujiaoai.cn 4研究測試&…

02-Linux【基礎篇】

一、Linux的目錄結構 1.基本介紹 Linux的文件系統采用層級式的樹狀目錄結構,在此結構中的最上層是根目錄"/",然后在此目錄下再創建其他的目錄 深刻理解Linux樹狀文件目錄是非常重要的 記住一句經典的話:在Linux世界里&#xff…

如何在 DigitalOcean Droplet 云主機上創建 Ubuntu 服務器

在本文中,你將通過 DigitalOcean 的管理面板創建一個 Ubuntu 服務器,并將其配置為使用你的 SSH 密鑰。設置好服務器后,你可以在其上部署應用程序和網站。 本教程是DigitalOcean云課程簡介的一部分,它指導用戶完成將應用程序安全地…

win10右鍵沒有默認打開方式的選項的處理方法

問題描述 搞了幾個PDF書籍學習一下,不過我不想用默認的WPS打開,因為WPS太惡心人了,占用資源又高。我下載了個Sumatra PDF,這時候我像更改pdf文件默認的打開程序,發現右擊沒有這個選項。 問題解決 右擊文件–屬性–…

汽車以太網發展現狀及挑戰

一、汽車以太網技術聯盟 目前推動汽車以太網技術應用與發展的組織包括:OPEN Alliance(One-Pair Ether-Net Alliance SIG)聯盟,主要致力于汽車以太網推廣與使用,該聯盟通過推進 BroadR- Reach 單對非屏蔽雙絞線以太網傳…

設計新境界:大數據賦能UI的創新美學

設計新境界:大數據賦能UI的創新美學 引言 隨著大數據技術的蓬勃發展,它已成為推動UI設計創新的重要力量。大數據不僅為界面設計提供了豐富的數據資源,還賦予了設計師以全新的視角和工具來探索美學的新境界。本文將探討大數據如何賦能UI設計…

面試八股之JVM篇3.5——垃圾回收——G1垃圾回收器

🌈hello,你好鴨,我是Ethan,一名不斷學習的碼農,很高興你能來閱讀。 ??目前博客主要更新Java系列、項目案例、計算機必學四件套等。 🏃人生之義,在于追求,不在成敗,勤通…

1688. 比賽中的配對次數

題目: 給你一個整數 n ,表示比賽中的隊伍數。比賽遵循一種獨特的賽制: 如果當前隊伍數是 偶數 ,那么每支隊伍都會與另一支隊伍配對。總共進行 n / 2 場比賽,且產生 n / 2 支隊伍進入下一輪。 如果當前隊伍數為 奇數 …

python梯度下降法求解三元線性回歸系數,并繪制結果

import numpy as np import matplotlib.pyplot as plt # 生成隨機數據 np.random.seed(0) X1 2 * np.random.rand(100, 1) X2 3 * np.random.rand(100, 1) X3 4 * np.random.rand(100, 1) y 4 3 * X1 5 * X2 2 * X3 np.random.randn(100, 1) # 合并特征 X_b np.hsta…

Vue中組件之間的通信有哪些方法

在Vue中,組件之間的通信有多種方法,以下是一些常見的方法: Props和$emit: 父組件通過props向子組件傳遞數據。子組件通過$emit觸發事件,將數據傳遞給父組件。 provide和inject: 在Vue 2.2.0版本中引入的選…

云計算-特殊機制(Specialsed Mechanisms)

自動擴展監聽器 (Automated Scaling Listener) 自動擴展監聽器是一種特定類型的服務代理。它運行在云提供商的網絡中,監控云消費者和云服務之間的網絡流量。通過分析消費者和服務之間的消息量和類型,它可以測量云服務的負載。 自動擴展監聽器對變化的負載…

常見 JVM 面試題補充

原文地址 : 26 福利:常見 JVM 面試題補充 (lianglianglee.com) CMS 是老年代垃圾回收器? 初步印象是,但實際上不是。根據 CMS 的各個收集過程,它其實是一個涉及年輕代和老年代的綜合性垃圾回收器。在很多文章和書籍的劃分中&…

SpringCloud Alibaba的相關組件的簡介及其使用

Spring Cloud Alibaba是阿里巴巴為開發者提供的一套微服務解決方案,它基于Spring Cloud項目,提供了一系列功能強大的組件,包括服務注冊與發現、配置中心、熔斷與限流、消息隊列等。 本文將對Spring Cloud Alibaba的相關組件進行簡介&#xff…

React Native 之 動畫Animated(十二)

react-native 的 Animated API提供了一種聲明式的方式來創建平滑的動畫效果。它允許你編寫動畫邏輯,并將動畫值直接綁定到組件的樣式或布局屬性上。 react-native 的 Animated 庫通過以下方式工作: 創建動畫值:首先,你需要使用 A…

ROCm上運行預訓練BERT

14.10. 預訓練BERT — 動手學深度學習 2.0.0 documentation (d2l.ai) 下載數據集 在d2l-zh/pytorch/data目錄解壓: ~/d2l-zh/pytorch/data$ unzip wikitext-2-v1.zip Archive: wikitext-2-v1.zipcreating: wikitext-2/inflating: wikitext-2/wiki.test.tokens …

【第17章】MyBatis-Spring之注入映射器

文章目錄 前言一、注冊映射器1. XML 配置2. Java 配置 二、發現映射器1. <mybatis:scan/>2.MapperScan ( 建議 ) \color{#00FF00}{(建議)} (建議) 三、MapperScannerConfigurer總結 前言 與其在數據訪問對象&#xff08;DAO&#xff09;中手工編寫使用 SqlSessionDaoSu…

數據庫--數據庫基礎(一)

目錄 第一章 緒論 一.數據庫的基本概念 1. 數據庫的4個基本概念 2、數據庫系統的特點 二.數據庫和文件 三.數據模型 1.概念模型 2.邏輯模型(物理模型) 2.1關系模型 四.數據庫系統的三級模式結構&#xff1a; 五數據庫的二級映像功能與數據獨立性 第二章 關系數據庫…

WEBPACK開發|生產環境配置(抽離公共部分)

這是webpack4演示&#xff0c;webpack5有些插件不在推薦&#xff0c; 1. webpack.base.config.js文件的配置說明 const path require(path); const webpack require(webpack); const ExtractTextPlugin require(extract-text-webpack-plugin); // 該插件的主要是為了抽離c…

【LeetCode面試經典150題】100. 相同的樹

一、題目 100. 相同的樹 - 力扣&#xff08;LeetCode&#xff09; 給你兩棵二叉樹的根節點 p 和 q &#xff0c;編寫一個函數來檢驗這兩棵樹是否相同。 如果兩個樹在結構上相同&#xff0c;并且節點具有相同的值&#xff0c;則認為它們是相同的。 二、思路 二叉樹的題&#…