iOS數據結構 和 算法 上

我在這里簡單介紹一下 ?如果覺得有用盡管拷了去

數據結構

? ? ? ? ?寫算法之前呢,我想簡單介紹一下數據結構,數據結構通常分為四類

1.集合結構 ?線性結構 ?樹形結構 ?圖形結構

? ?這里沒有圖啊,大家可以抽象一下。?

1.1、集合結構 說白了就是一個集合,就是一個圓圈中有很多個元素,元素與元素之間沒有任何關系 ?這個很簡單 ?

1.2、線性結構 說白了就是一個條線上站著很多個人。 這條線不一定是直的。也可以是彎的。也可以是值的 相當于一條線被分成了好幾段的樣子 (發揮你的想象力)。 線性結構是一對一的關系

1.3、樹形結構 說白了 ?做開發的肯定或多或少的知道xml 解析 ?樹形結構跟他非常類似。也可以想象成一個金字塔。樹形結構是一對多的關系

1.4、圖形結構 這個就比較復雜了。他呢 無窮。無邊 ?無向(沒有方向)圖形機構 你可以理解為多對多 類似于我們人的交集關系

2. 數據結構的存儲

? ? ? 數據結構的存儲一般常用的有兩種 ? 順序存儲結構 和 鏈式存儲結構

2.1? 順序存儲結構

發揮想象力啊。 舉個列子。數組。1-2-3-4-5-6-7-8-9-10。這個就是一個順序存儲結構 ,存儲是按順序的 ?舉例說明啊。 棧。做開發的都熟悉。棧是先進后出 ,后進先出的形式 對不對 ?!他的你可以這樣理解

hello world 在棧里面從棧底到棧頂的邏輯依次為 h-e-l-l-o-w-o-r-l-d 這就是順序存儲 再比如 隊列 ,隊列是先進先出的對吧,從頭到尾 h-e-l-l-o-w-o-r-l-d 就是這樣排對的

2.2 鏈式存儲結構

再次發揮想象力 這個稍微復雜一點 這個圖片我一直弄好 ,回頭找美工問問,再貼上 ?例如 還是一個數組

1-2-3-4-5-6-7-8-9-10? 鏈式存儲就不一樣了 1(地址)-2(地址)-7(地址)-4(地址)-5(地址)-9(地址)-8(地址)-3(地址)-6(地址)-10(地址)。每個數字后面跟著一個地址 而且存儲形式不再是順序 ,也就說順序亂了,1(地址) 1后面跟著的這個地址指向的是2,2后面的地址指向的是3,3后面的地址指向是誰你應該清楚了吧。他執行的時候是 1(地址)-2(地址)-3(地址)-4(地址)-5(地址)-6(地址)-7(地址)-8(地址)-9(地址)-10(地址),但是存儲的時候就是完全隨機的。明白了?!

3. 單向鏈表\雙向鏈表\循環鏈表

還是舉例子。理解最重要。不要去死記硬背 哪些什么。定義啊。邏輯啊。理解才是最重要滴

?3.1 單向鏈表 ??

? ? ? ? ? A->B->C->D->E->F->G->H. 這就是單向鏈表 ?H 是頭 A 是尾 ?像一個只有一個頭的火車一樣 只能一個頭拉著跑

3.2 ?雙向鏈表

? ? ?H<- A->B->C->D->E->F->G->H. 這就是雙向鏈表。有頭沒尾。兩邊都可以跑 ?跟地鐵一樣 到頭了 可以倒著開回來

3.3 循環鏈表?

? ? 發揮想象力? A->B->C->D->E->F->G->H. 繞成一個圈。就像蛇吃自己的這就是循環 ?不需要去死記硬背哪些理論知識。

4.二叉樹/平衡二叉樹

4.1 什么是二叉樹

? ? ? 樹形結構下,兩個節點以內 都稱之為二叉樹 不存在大于2 的節點 分為左子樹 右子樹 有順序 不能顛倒 ,懵逼了吧,你肯定會想這是什么玩意,什么左子樹右子樹 ,都什么跟什么鬼? ?現在我以普通話再講一遍,你把二叉樹看成一個人 ,人的頭呢就是樹的根 ,左子樹就是左手,右子樹就是右手,左右手可以都沒有(殘疾嘛,聲明一下,絕非歧視殘疾朋友,勿怪,勿怪就是舉個例子,i am very sorry) ?, 左右手呢可以有一個,就是不能顛倒。這樣講應該明白了吧?

二叉樹有五種表現形式

? ? ?1. 空的樹(沒有節點)可以理解為什么都沒 像空氣一樣

? ? 2. 只有根節點。 (理解一個人只有一個頭 其他的什么都沒,說的有點恐怖)

? ? 3. 只有左子樹 (一個頭 一個左手 感覺越來越寫不下去了)

? ? 4. 只有右子樹

? ?5 、左右子樹都有

二叉樹可以轉換成森林 樹也可以轉換成二叉樹。這里就不介紹了 你做項目絕對用不到

數據結構大致介紹這么多吧。理解為主 別死記,死記沒什么用

5.算法

? ?從現在開始介紹算法啊

5.1 冒泡排序 和選擇排序

冒泡和選擇排序

5.2 插入排序


插入排序

5.3 希爾排序


希爾排序

5.3.1 二分查找


二分查找算法

5.3.2。快排


快速排序

后續 我會陸續上傳 堆排序 歸并排序 漢諾塔 二叉樹 等 盡情期待



5.4 二叉樹

二叉樹這個比較麻煩 ?還有平衡二叉樹 有點繞 如果不懂二叉樹這一塊 你是百分之二百看不懂的

1. 如果左子樹非空,那么左子樹所有節點的值均小于它的根節點

2. 如果右子樹非空,那么右子樹所有節點的值均大于它的根節點

3. 左右子樹也分別為二叉排序樹

估計此時你心里快罵娘了,什么左子樹 右子樹 ?什么二叉樹 這是哪個山洞跑出來的,其實我也不知道怎么去解釋,這東西就是太繞了。后續還有?

歸并排序算法、戴克斯特拉算法,快捷算法,動態規劃,堆排序,歸并排序等等,這些太多了,

以后有空再寫吧 ,上面的四種算法 我覺得做項目完全夠用了,要是還遇到什么難題,請留言,后續呢我有空也會時不時更新,謝謝大家關注,暫時先到這

寫的再多不如源碼。Github:https://github.com/tianbinbin/AlgorithmDemo

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,743評論 2 370

推薦閱讀更多精彩內容