什么是算法,什么是數據結構

  盡管已經學了幾年,對它們也可以說大致懂得。但是,作為非計算機專業的人員,還是不會比計算機專業人員懂得多。既然沒有受過專門的學習訓練,自然會有三天打魚兩天曬網的感覺,一天可能冒出一個念頭。于是乎,寫寫現在的念頭,一點也沒有直接抄襲其他地方的資料,還是用自家的話說比較讓自己懂!可能有錯,但是不要怕,先錯著,以后理解透了自然會在意識上修正。

  因為上次選修過算法與數據結構,受到課名的影響,雖然教材是《數據結構教程》,但總是以為自己學的是算法。實際上,自己在學習數據結構。

〇、引言

  用一個比喻描述。圖書館里的書好比數據,圖書的擺放好比數據結構。要更好地管理圖書就必須更好地擺放圖書!比如,我可能這么擺放:

方案1:

  所有的書架上放在一個大房間中,依次擺放:古典文學,西方文學,中國文學,歷年諾貝爾文學,天文學,地理學,中國歷史,外國歷史,信息,自動化,通信,電子電氣...依次列舉,這里還假設各個書架上的書不會有相同的,它們是并列關系,雖然有些牽強。(數組)

? ? ? 如果我要找一本《圍城》,那么我先到第一個書架上看看有沒有這本書,發現沒有又到下一個書架看,直到找到這本書。(搜索,線性搜索)

方案2:

  我先將大房子分成兩個房間,分別稱為社會科學圖書,自然科學圖書。然后兩個房間又各自分為:歷史、地理、政治;理科,工科。依次按照類別分。(樹,各種樹)

  如果我要找本《數據結構教程》,我先悠哉悠哉地走進自然科學圖書房間,然后輕輕地抬頭,看看房間牌子,進入工科房間。。。依次,很快找到這本書。(樹的搜索logn時間復雜度)

  這就是數據結構的神奇。

  那什么是算法?這個只能牽強地接著比喻。我想學武功。我進入武功秘籍的圖書房間之后,我抱著一大堆書跑出來。打開一看,有降龍十八掌,九陰真經,九陽神功,易筋經,乾坤大挪移,少林龍爪手,太極拳,醉拳,佛山無影腳,七傷拳。我暫時沒想好學什么武功,因為各有厲害的地方,有學的時間長不傷身,有的速成但傷身,有的需要內力,有的速度快殺傷力弱,有的殺傷力強但速度極慢。有的雖然不是最厲害的,但簡單易學。

  同樣地,算法也有好壞之分:有的不能保證收斂,有的能收斂速度慢。有的雖然速度快,但需要內存大。有的雖然不是局部最優解,但是簡單容易,有的是原址的,有的不是原址的。

一、數據結構

類別

棧:

隊列:

鏈表:單鏈表、雙鏈表

各種樹:AVL樹、2-3樹、B樹、紅黑樹、AA樹、treap樹、帶權平衡樹、k近鄰樹、伸展樹、跳表...各種各樣的樹,很有意思

散列表:鏈接法、開放尋址法

主要研究下述的操作,希望更少的時間復雜度來操作:

建立

查詢

插入

刪除

二、算法

舉例

最優化理論中各種:

動態規劃:

整數規劃:

各種非凸算法:遺傳算法,蟻群算法,粒子群算法,模擬退火算法

...

研究目標:

希望算法收斂且速度快,全局最優,代碼簡單易懂,內存更好,原址,魯棒性好

轉載于:https://www.cnblogs.com/Wanggcong/p/4725134.html

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

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

相關文章

如何在多web服務器共享SESSION數據

2019獨角獸企業重金招聘Python工程師標準>>> 一、問題起源 稍大一些的網站,通常都會有好幾個服務器,每個服務器運行著不同功能的模塊,使用不同的二級域名,而一個整體性強的網站,用戶系統是統一的&#xff0…

grpc php 返回值過大,使用grpc實現php、java、go三方互調

grpc作為經典的rpc協議,雖然略重,但是是有學習的價值的通過下面的內容可以快速上手這個grpc框架安裝命令行工具php需要這個額外的protoc、grpc_php_plugin工具把這個protobuf格式的文件生成php語言里的類go需要安裝protoc-gen-go工具把protobuf格式的接口…

SOCKET通信的基本步驟

SOCKET通信的基本步驟 1)建立一個服務器ServerSocket,并同時定義好ServerSocket的監聽端口;2)ServerSocket 調用accept()方法,使之處于阻塞。3)創建一個客戶機Socket,并設置好服務器的IP和端口。4&#xff…

Linux epoll 筆記(高并發事件處理機制)

wiki: Epoll優點; Epoll工作流程; Epoll實現機制: epollevent; Epoll源碼分析; Epoll接口: epoll_create; epoll_ctl; epoll_close; Epoll工作方式: LT(level-triggered); ET(edge-triggered); Epoll應用模式; Epoll優點&#xff…

Django請求響應對象

請求與響應對象 HttpRequest HttpRequest存儲了客戶請求的相關參數和一些查詢方法。 path請求頁面的全路徑,不包括域名—例如, "/hello/"。 methodHttp請求方法,包括GET,POST。 GETQueryDict類實例,包含所有HTTP GET參數的字典對象。 POSTQuer…

matlab 作圖 虛線太長,matlab?極坐標繪圖?在matlab中,用polar畫的圖形,如何使虛線圓多顯示幾個?...

滿意答案iredwood推薦于 2018.12.26采納率:52% 等級:12已幫助:13535人打開polar.m 文件,路徑可通過輸入 which polar 命令得到。其中修改下面這段代碼,可以控制虛線圓的顯示個數。其中rticks 為控制顯示個數的參量。…

《學習opencv》筆記——矩陣和圖像處理——cvAnd、cvAndS、cvAvg and cvAvgSdv

矩陣和圖像的操作 (1)cvAnd函數 其結構 void cvAnd( //將src1和src2按像素點取“位與運算”const CvArr* src1,//第一個矩陣const CvArr* src2,//第二個矩陣CvArr* dst,//結果矩陣const CvArr* mask NULL;//矩陣經行像素點與的“開關” );程序實例#include <cv.h> #inc…

Hibernate之加載策略(延遲加載與即時加載)和抓取策略(fetch)

假設現在有Book和Category兩張表,表的關系為雙向的一對多,表結構如下: 假設現在我想查詢id為2的那本書的書名,使用session.get(...)方法: 1 Session sessionHibernateUtil.getSession(); 2 Book book (Book) session.get(Book.class,2); 3 System.out.println(book.getName());…

指紋圖像方向圖matlab,matlab指紋方向場方向圖程序

function Fangxiangtu zhiwen_fangxiangtu( Zhiwentuxiang )%函數功能計算指紋方向圖%函數參數指紋圖像Zhiwentuxiang%函數返回值指紋方向圖FangxiangtuSizeZhiwentuxiang size( Zhiwentuxiang ) ;Zhiwentuxiang double( Zhiwentuxiang ) ;W 4; % 窗口大小(2W1)*(2W1)W 4;…

怎樣實現一個簡單的jQuery編程

第一步&#xff1a;在head中載入jQuery框架 <script  type"text/javascript" src"jQuery文檔所在的絕對路徑"></script> 注&#xff1a; type——指定腳本的mime類型 src——規定外部腳本文件的URL jQuery是一個javascript庫&#xff0c;相…

php多人點餐可以看到對方點的菜,千萬不要小看你身邊那個會點菜的人,因為

飯局上&#xff0c;你常常是負責點菜的那個人&#xff0c;還是只負責吃&#xff1f;拿起菜單點菜&#xff0c;你是很從容&#xff0c;還是不知道怎么點&#xff1f;事實上&#xff0c;飯局上那個會點菜的人&#xff0c;千萬不能小看。某次隨老板外出開會&#xff0c;跟去的幾個…

gvim for php,轉 : Gvim建立IDE編程環境 (Windows篇)

說明&#xff1a;本文是作者在完全按照著名的《手把手教你把Vim改裝成一個IDE編程環境》一文&#xff0c;在Windows XP上用gvim建立IDE環境時所作的備忘。原作地址&#xff1a;http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx。1.安裝gvim7.2。運行gvim72.exe&…

1081. Rational Sum (20) -最大公約數

題目如下&#xff1a; Given N rational numbers in the form "numerator/denominator", you are supposed to calculate their sum. Input Specification: Each input file contains one test case. Each case starts with a positive integer N (<100), followe…

CRC8校驗分析

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** CRC即循環冗余校驗碼&#xff08;Cyclic Redundancy Check&#xff09;&#xff1a;是…

insert mysql后加where,如何在MySQL Insert語句中添加where子句?

This doesnt work:這不起作用:INSERT INTO users (username, password) VALUES ("Jack","123") WHERE id1;Any ideas how to narrow insertion to a particular row by id?任何想法如何通過id縮小插入到特定行?8 個解決方案#120In an insert statement y…

阿里云使用筆記-Lrzsz上傳下載文件-centos7

2019獨角獸企業重金招聘Python工程師標準>>> 上傳文件時提示&#xff1a; -bash: rz: command not found rz命令沒找到&#xff1f; 執行sz&#xff0c;同樣也沒找到。 原來是要安裝個叫 lrzsz 的東西&#xff0c;一查可以直接yum。 安裝lrzsz&#xff1a;# yum -y …

C#中的DBNull、Null、String.Empty和“”

null可賦值任何變量,將變量置為空 DBNull只用于DataRow對象,表示數據庫中的空值 String.Empty是0長度字串 Convert.IsDBNull判斷是否為DBNull DBNull.Value與Null的區別 Null是.net中無效的對象引用。 DBNull是一個類。DBNull.Value是它唯一的實例。它指數據庫中數據為空(&l…

matlab數值很小出錯,求大神幫忙解決一下,用MATLAB求解動力學數據總是出錯~ - 計算模擬 - 小木蟲 - 學術 科研 互動社區...

CODE:function KineticsEst5 % 動力學ODE方程模型的參數估計%%%% The variables y here are y(1)xB, y(2)xoNB, y(3)xmNB,y(4)xpNB,y(5)xDNB .clear allclck0 [5 5 5 5 5]; % 參數初值lb [0 0 0 0 0]; % 參數下限ub [inf inf inf inf inf]; % 參數上限x0 [0 0 0 0 0 0];Kin…

iOS開發--驗證碼

第一步&#xff0c;拖兩個空間textfiled和button到storyboard上的viewcontroller上。 第二步&#xff0c;拖線&#xff0c;鏈接到.h文件中代碼如下&#xff1a; 1property (weak, nonatomic) IBOutlet UIButton *l_timeButton;第三步&#xff0c;在,m文件中為l_timeButton設置監…

Standard C Episode 8

C語言函數和程序結構 通過函數可以把大的計算任務分解成若干個較小任務&#xff0c;從而使得思路更加清晰&#xff0c;同時函數也大大提高了代碼的復用率&#xff0c;提高了工作效率。要注意的是多函數之間應該盡可能地高聚合低耦合。另一方面&#xff0c;一個程序可以保存在一…