国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

數(shù)據(jù)結(jié)構(gòu)的基本概念

數(shù)據(jù)結(jié)構(gòu)的三要素

算法的基本概念


數(shù)據(jù)結(jié)構(gòu)的基本概念

????????在學習某個知識之前,我們是否都有問過自己我們到底在學習的目的是什么?學習數(shù)據(jù)結(jié)構(gòu)也一樣,我們學習數(shù)據(jù)結(jié)構(gòu)主要是為了用程序把現(xiàn)實世界的問題信息化;用計算機高效地處理這些信息從而創(chuàng)造價值。ok,接下來就正式學習數(shù)據(jù)結(jié)構(gòu)這門課程:

數(shù)據(jù):數(shù)據(jù)是信息的載體,是描述客觀事物屬性的數(shù)、字符及所有能輸入到計算機中并被計算機程序識別和處理的符合的集合。數(shù)據(jù)是計算機程序加工的原料。

數(shù)據(jù)元素:數(shù)據(jù)的基本單位,通常作為一個整體進行考慮和處理。

數(shù)據(jù)項:一個數(shù)據(jù)元素可由若干數(shù)據(jù)項組成,數(shù)據(jù)項是構(gòu)成數(shù)據(jù)元素的不可分割的最小單位。

數(shù)據(jù)對象:具有相同性質(zhì)的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。

它們之間的關(guān)系如下圖所示:

數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎

數(shù)據(jù)結(jié)構(gòu):是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。 數(shù)據(jù)結(jié)構(gòu)這門課著重關(guān)注的是數(shù)據(jù)元素之間的關(guān)系,和對這些數(shù)據(jù)元素的操作,而不關(guān)心具體的數(shù)據(jù)項內(nèi)容。

數(shù)據(jù)結(jié)構(gòu)的三要素

數(shù)據(jù)結(jié)構(gòu)三要素主要分為邏輯結(jié)構(gòu)、數(shù)據(jù)的運算、物理結(jié)構(gòu)(存儲結(jié)構(gòu)),以及每個結(jié)構(gòu)對應的知識,接下來來將對這三要素進行簡單的介紹一下:

邏輯結(jié)構(gòu)分為好幾種情況,接下來將逐一講解,以下是數(shù)據(jù)元素之間常見的邏輯關(guān)系:

集合結(jié)構(gòu):各個元素同屬于一個集合,別無其它關(guān)系。

線性結(jié)構(gòu):數(shù)據(jù)元素之間是一對一的關(guān)系,除了第一個元素,所有元素都有唯一前驅(qū);除了最后一個元素,所有元素都有唯一后繼。

樹形結(jié)構(gòu):數(shù)據(jù)元素之間是一對多關(guān)系。

圖狀結(jié)構(gòu):數(shù)據(jù)元素之間是多對多關(guān)系。

數(shù)據(jù)的運算:針對于某種邏輯結(jié)構(gòu),結(jié)合實際需求,定義基本運算。

物理結(jié)構(gòu)是為了用計算機表示數(shù)據(jù)元素的邏輯關(guān)系,以下是物理結(jié)構(gòu)創(chuàng)建的存儲方式:

順序存儲:把邏輯上相鄰的元素存儲在物理位置上也相鄰的存儲單元中,元素之間的關(guān)系由存儲單元的鄰接關(guān)系來體現(xiàn)。

鏈式存儲:邏輯上相鄰的元素在物理位置上可以不相鄰,借助指示元素存儲地址的指針來表示元素之間的邏輯關(guān)系。

索引存儲:在存儲元素信息的同時,還建立附加的索引表。索引表中的每項稱為索引項,索引項的一般形式是(關(guān)鍵字,地址)。

散列存儲:根據(jù)元素的關(guān)鍵字直接計算出該元素的存儲地址,又稱哈希存儲。

若采用順序存儲,則各個數(shù)據(jù)元素在物理上必須是連續(xù)的;若采用非順序存儲,則各個數(shù)據(jù)元素在物理上可以是離散的。數(shù)據(jù)的存儲結(jié)構(gòu)會影響存儲空間分配的方便程度;對數(shù)據(jù)運算的速度。

算法的基本概念

算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中的每條指令表示一個或多個操作。

數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎

算法具有如下特性:

有窮性:算法必須總在執(zhí)行有窮步之后結(jié)束,且每一步都可在有窮時間內(nèi)完成。算法必須是有窮的,而程序可以是無窮的。

確定性:算法中的每條指令必須有確切的含義,對于相同的輸入只能得出相同的輸出。

可行性:算法中描述的操作都可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次來實現(xiàn)。

輸入:一個算法有零個或多個輸入,這些輸入取自于某個特定的對象的集合。

輸出:一個算法有一個或多個輸出,這些輸出是與輸入有著某種特定關(guān)系的量。

一個好的算法應該具備如下特質(zhì):

正確性:算法應能夠正確地解決求解問題。

可讀性:算法應具有良好的可讀性,以幫助人們理解。

健壯性:輸入非法數(shù)據(jù)時,算法能適當?shù)刈龀龇磻蜻M行處理,而不會產(chǎn)生莫名其妙的輸出結(jié)果。

高效性與低存儲量需求:花的時間少(時間復雜度低)和不費內(nèi)存(空間復雜度低)。

總結(jié)圖片如下:

數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎

關(guān)于時間復雜度和空間復雜度的講解操作,我在之前的文件就已經(jīng)講解過了,不知道的朋友推薦看一下我之前的文章:時間復雜度和空間復雜度(我不信看完這篇文章你還不懂) ,當然也可以看一下下面整理的知識梳理文檔:

數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎

數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎

這篇文章主要講解了數(shù)據(jù)結(jié)構(gòu)相關(guān)的基本概念,下篇文章將著重講解數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識。文章來源地址http://www.zghlxwxcb.cn/news/detail-493034.html

到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)--》從數(shù)據(jù)結(jié)構(gòu)開始,打好算法基礎的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)與算法基礎

    數(shù)據(jù)結(jié)構(gòu)與算法基礎

    1.1、數(shù)組 已知5行5列的二維數(shù)組a中的各元素占兩個字節(jié),求元素a[2][3]按行優(yōu)先存儲的存儲地址? 按行存:a+(5*2+3) 2=a+26 按列存:a+(5 3+2)*2=a+34 1.2、稀疏矩陣 在矩陣中,若數(shù)值為0的元素數(shù)目遠遠多于非0元素的數(shù)目,并且非0元素分布沒有規(guī)律時,則稱該矩陣為 稀疏矩陣 ;與之

    2024年02月04日
    瀏覽(23)
  • 【算法基礎】數(shù)據(jù)結(jié)構(gòu)

    【算法基礎】數(shù)據(jù)結(jié)構(gòu)

    826. 單鏈表 - AcWing題庫 827. 雙鏈表 - AcWing題庫 828. 模擬棧 - AcWing題庫 3302. 表達式求值 - AcWing題庫 遍歷輸入的操作 如果是數(shù)字就存入num的堆棧 (同時注意123,2123這種長數(shù)字要一次性存入) 如果是(? 直接存入op的堆棧 如果是? )就一直運算,直到遇到( 如果是操作符(如

    2024年02月12日
    瀏覽(26)
  • 【算法與數(shù)據(jù)結(jié)構(gòu)】--算法基礎--算法設計與分析

    一、貪心算法 貪心算法是一種解決優(yōu)化問題的算法設計方法,其核心思想是在每一步選擇當前狀態(tài)下的最優(yōu)解,從而希望最終達到全局最優(yōu)解。下面將介紹貪心算法的原理、實現(xiàn)步驟,并提供C#和Java的實現(xiàn)示例。 1.1 原理: 貪心算法的原理基于局部最優(yōu)選擇,通過在每一步選

    2024年02月07日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu)基礎之排序算法

    在數(shù)據(jù)結(jié)構(gòu)中,常見的排序算法有以下幾種: 冒泡排序(Bubble Sort):通過比較相鄰元素并交換它們的位置,每輪將最大(或最?。┑脑孛芭莸侥┪?,重復執(zhí)行直到排序完成。 特點:簡單易懂,但對于大型數(shù)據(jù)集效率較低。 時間復雜度: 最優(yōu)情況:O(n)(當數(shù)組已經(jīng)排序好

    2024年02月15日
    瀏覽(24)
  • 《數(shù)據(jù)結(jié)構(gòu)與算法》之十大基礎排序算法

    《數(shù)據(jù)結(jié)構(gòu)與算法》之十大基礎排序算法

    冒泡排序是一種交換排序,它的思路就是在待排序的數(shù)據(jù)中,兩兩比較相鄰元素的大小,看是否滿足大小順序的要求,如果滿足則不動,如果不滿足則讓它們互換。 然后繼續(xù)與下一個相鄰元素的比較,一直到一次遍歷完成。一次遍歷的過程就被成為一次冒泡,一次冒泡的結(jié)束

    2024年02月05日
    瀏覽(24)
  • 算法競賽:初級算法(第一章:基礎數(shù)據(jù)結(jié)構(gòu))

    動態(tài)鏈表 動態(tài)鏈表需要 臨時分配鏈表節(jié)點 ,使用完畢后釋放。 優(yōu)點 :能及時釋放空間,不使用多余內(nèi)存 缺點 :需要管理空間,容易出錯(競賽一般不用動態(tài)鏈表) 靜態(tài)鏈表 靜態(tài)鏈表使用 預先分配的一段連續(xù)空間 存儲鏈表,這種鏈表在邏輯上是成立的。 有兩種做法:

    2024年01月19日
    瀏覽(31)
  • Android開發(fā)UI新技能,你get這個新技能了嗎?(附源碼詳解),從零開始學數(shù)據(jù)結(jié)構(gòu)和算法

    Android開發(fā)UI新技能,你get這個新技能了嗎?(附源碼詳解),從零開始學數(shù)據(jù)結(jié)構(gòu)和算法

    2. 文本輸入框 val state = +state { “Text Field to input” } TextField( value = state.value, onValueChange = { state.value = it } ) 3. 按鈕 Button(text = “咬我啊”, onClick = { Log.v(“test”, “被咬了”) }) 4.彈出框 MaterialTheme { Column { val openDialog = +state { false } Button(“Click me”, onClick = { openDialog.value = true

    2024年04月12日
    瀏覽(27)
  • 【算法集訓】基礎數(shù)據(jù)結(jié)構(gòu):十、矩陣

    矩陣其實就是二維數(shù)組,這些題目在9日集訓中已經(jīng)做過,這里做的方法大致相同。

    2024年02月04日
    瀏覽(27)
  • 【算法基礎】(二)數(shù)據(jù)結(jié)構(gòu) --- 單鏈表

    【算法基礎】(二)數(shù)據(jù)結(jié)構(gòu) --- 單鏈表

    ?個人主頁:bit me ?當前專欄:算法基礎 ??專欄簡介:該專欄主要更新一些基礎算法題,有參加藍橋杯等算法題競賽或者正在刷題的鐵汁們可以關(guān)注一下,互相監(jiān)督打卡學習 ?? ?? ?? 實現(xiàn)一個單鏈表,鏈表初始為空,支持三種操作: 向鏈表頭插入一個數(shù); 刪除第 k 個插

    2023年04月17日
    瀏覽(53)
  • C++基礎-介紹·數(shù)據(jù)結(jié)構(gòu)·排序·算法

    C++是一門風格嚴謹又不失自由的開發(fā)語言,提供了完整的內(nèi)存管理、支持函數(shù)式編程和面向?qū)ο缶幊?,支持模板、多繼承、多實現(xiàn)、重載、重寫等多態(tài)特性。 優(yōu)勢在于目前90%的操作系統(tǒng)、數(shù)據(jù)庫、應用基礎架構(gòu)、硬件嵌入式等都是使用C/C++制作的,而C++是對C的標準擴展,掌握

    2024年02月03日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包