考研資料結構與演算法分析(時常更新)
考完軟考遼,也不知道考的怎麼樣。whatever,要開始準備考研遼(暴風哭泣).....考的是408 在這裡不斷更新一些經典演算法吧,希望自己不斷總結得到提升...
2018年11月13日 可以說是很幸運了,在北圖找到了一本《資料結構精簡與詳解(C語言版)(第二版)》——清華大學出版社 殷人昆著作。裡面的演算法題的數量達到了700道,來源於國內外的經典資料結構和演算法教材題典,以及各大學、各大公司的入學考試和入職面試。回到寢室在B站逛了一圈,決定跟著趙海英老師學習資料結構。開篇分析的挺好的,對於整個資料結構的知識體系框架梳理清晰。
相關推薦
考研資料結構與演算法分析(時常更新)
考完軟考遼,也不知道考的怎麼樣。whatever,要開始準備考研遼(暴風哭泣).....考的是408 在這裡不斷更新一些經典演算法吧,希望自己不斷總結得到提升... 2018年11月13日 可以說是很幸運了,在北圖找到了一本《資料結構精簡與詳解(C語言版)(第二版)》——清
C語言實現(摘自資料結構與演算法分析 C語言描述)
一、概述: 棧(stack)是限制插入和刪除只能在一個位置上進行的表,該位置是表的末端,叫做棧的頂(top)。對棧的基本操作有Push(進棧)和Pop(出棧),前者相當於插入,後者則是刪除最後插入的元素。 棧有時又叫做LIFO(後進先出)表。在圖1中描述的模型只象徵著Pus
資料結構與演算法分析(Java語言描述)(12)—— 堆排序與陣列建堆
基本的堆排序 HeapSortBasic.java package com.algorithm.sort; import com.dataStructure.heap.MaxHeap; public class HeapSortBasic { p
資料結構與演算法分析(一) —— 數學基礎
這段時間,該開始資料結構與演算法分析的學習了。跟以前一樣,學習同時整理成博文是個不錯的學習方式,因此,後面一段時間將對資料結構與演算法分析進行講解學習,希望有興趣的同學一起討論學習。 資料結構,即組織大量資料的方法;演算法分析,即演算法執行時間的估計。很多
資料結構與演算法分析(Java語言描述)(32)—— 使用 Kruskal 演算法求有權圖的最小生成樹
將圖中的所有邊存到最小堆中 當最小堆非空 取出權重最小的邊 如果此邊的兩個端點是連線的 跳出本次迴圈 將此邊加入 mst 中 在並查集中 union 此邊的兩端點 package com.dataStr
資料結構與演算法練習(Java實現)
package lintcode; /** * * @ClassName: Solution * @Description: TODO() * @author A18ccms a18ccms_gmail_com * @date 2017年8月14日 上午10:12
資料結構與演算法基礎(基於python)
用大O法表示執行時間,log都表示log2(以2為底的對數) 所有的演算法都是基於python寫的 一、二分查詢法: 1、輸入:一個有序的元素列表 2、輸出:如果要查詢的元素包含在列表中,二分查詢返回其位置,否則返回NULL. 3、使用
資料結構與演算法分析c語言描述(Mark Allen)--佇列ADT連結串列實現
佇列ADT連結串列實現 使用連結串列儲存 操作集合 入隊 出隊 初始化 返回隊前元素 列印 #include <stdio.h> #includ
資料結構與演算法分析c語言描述(Mark Allen)--迴圈佇列ADT陣列實現
迴圈佇列ADT陣列實現 使用陣列儲存 操作集合 入隊 出隊 清空 初始化 返回隊前元素 列印 重點注意! 對於一個迴圈佇列 front == rear時候佇列
資料結構與演算法分析:線性結構(3)
堆疊 1.計算機如何進行表示式求值 算術表示式: 由兩類物件構成:運算數,運算子號 不同運算子號優先順序不同 ①中綴表示式:把運算子號放在兩個運算數之間:a+b*c-d/e &
資料結構與演算法筆記(二)複雜度分析
2. 複雜度分析 2.1 什麼是複雜度分析 資料結構和演算法的本質:快和省,如何讓程式碼執行得更快、更省儲存空間。 演算法複雜度分為時間複雜度和空間複雜度,從執行時間和佔用空間兩個維度來評估資料結構和演算法的效能。 複雜度描述的是演算法執行時間(或佔用空間)與資料規模的增長關
資料結構與演算法分析c語言描述(Mark Allen)--線性錶鏈表方法實現
線性表--連結串列實現 標頭檔案 #define ElementType int #define INF INT_MAX #ifndef _List_H struct Node; typedef struct Node *PtrToNode; typedef PtrToN
資料結構與演算法分析c語言描述(Mark Allen)--多項式ADT陣列實現
多項式ADT陣列實現 使用陣列進行儲存 操作集合 乘法 加法 標頭檔案 //cpp head file PloynomialADTarray.h #define MaxDegree 1000 typedef struct Pol { int C
資料結構與演算法分析c語言描述(Mark Allen)--多項式ADT連結串列實現
多項式ADT連結串列實現 使用連結串列結構儲存 操作集合 多項式加法 多項式乘法 多項式的顯示 標頭檔案 //標頭檔案 typedef struct Node *PtrToNode; struct Node { int Cofficient
資料結構與演算法分析c語言描述(Mark Allen)--棧ADT陣列實現
棧ADT陣列實現 使用陣列儲存 操作集合 入棧push 出棧pop 清空 初始化 返回棧頂元素 得到一個隨機棧 列印整個棧 #include <stdio.h> #include <stdlib.h> #include <
資料結構與演算法分析-Java描述(2)-插入排序
插入排序有兩種演算法:直接插入排序和希爾排序 直接插入排序 原理:插入即表示將一個新的資料插入到一個有序陣列中,並繼續保持有序。 該排序演算法的外部迴圈為遍歷全部元素,內部迴圈為遍歷當前外部迴圈記錄元素的前面所有數字。 public static void inse
《資料結構與演算法分析:Java語言描述(第2版)》電子書下載 -(百度網盤 高清版PDF格式)
作者:韋斯 (Mark Allen Weiss) 馮舜璽 (譯) 出版日期:2009年1月1日 出版社:機械工業出版社 頁數:400頁 ISBN:9787111231837 檔案格式:PDF 檔案大小:15.95 MB
考研資料結構與演算法之堆疊的建立與使用(一)
到了堆疊這裡一下子就輕鬆了,算是一種暫時的解脫吧。經過了連結串列部分的學習和思考,我突然意識到嚴蔚敏教材的嚴謹性。下面是按照教材實現的堆疊操作程式碼,唯一有些疑問的是在Pop操作中要不要根據需要縮減堆疊的尺寸呢? #include <stdio.h>
考研資料結構與演算法之堆疊的使用(四)連結串列實現的堆疊
還是參考了別人的程式碼,不過比我自己寫出來的確實是要簡潔的多,不過仍然有不規範的地方,但是仍然值得我學習一下,在敲打的時候也是受到了一定的啟發。 #include <stdio.h> #include <stdlib.h> #define FULL
考研資料結構與演算法之樹的生成(1)
只寫了個開頭中的開頭,因為書上的內容開始有點複雜了,尤其是引用了堆疊,這樣不利於專一的對樹進行學習,因此我在思考一種最合理的方案來對他進行簡化,現在只是對結構體進行了定義,如下: #include <stdio.h> #include <stdlib.h