最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何深度理解排序算法(一)

2022-04-23 00:09 作者:雨夜的博客  | 我要投稿


    對(duì)于算法的理解、可以看成解決問題的過程和方式、無論算法是好還是壞,它都是一個(gè)獨(dú)立的個(gè)體。在眾多算法中,排序算法是經(jīng)常被用到,或者在以往的生活或者面試當(dāng)中會(huì)被提到的,所以理解和學(xué)會(huì)排序算法是非常重要的。

    還記得上小學(xué)的時(shí)候,老師會(huì)叫我們按照身高高低,進(jìn)行低的在前高的在后的原則、進(jìn)行排隊(duì)放學(xué)回家。那么大家思考下,如何排隊(duì)是最有效的呢?!

    首先,我們第一個(gè)想到的是什么呢?從第一個(gè)學(xué)生開始以此與相鄰的學(xué)生進(jìn)行比較,如果右邊學(xué)生的身高大于左邊的,就把右邊的學(xué)生和左邊的學(xué)生的位置調(diào)換,反之不交換位置。他的思維大概是這樣的。

    根據(jù)這個(gè)gif動(dòng)畫可以看出、它就像一個(gè)泡泡一樣慢慢的往上升,這種算法就是冒泡排序,為了便于理解和加深記憶,我們以python代碼來模擬下這種思路:

    根據(jù)以上描述可以看出,每次循環(huán)就會(huì)以相鄰的數(shù)組進(jìn)行比較、如果當(dāng)前數(shù)組大于相鄰的數(shù)組,就把兩個(gè)的位置進(jìn)行交換然后返回結(jié)果。

    那如果老師不喜歡這種方法呢?那我們可不可以這樣做呢?重復(fù)從人員當(dāng)前查找身高最小的,然后行交換位置。

    根據(jù)這個(gè)規(guī)律可以看出,每次選擇最小值、進(jìn)行判斷然后交換位置,這種算法就是選擇排序。


大家可以思考下,可不可以這樣做,就像我們玩撲克牌一樣,從排好序的牌里去和我們抓的牌進(jìn)行相比較呢?這樣是不是更好呢?這種方式其實(shí)就是今天我們所說的插入排序的方法。

根據(jù)這個(gè)描述可以看出,每次從選擇區(qū)去和待選擇的區(qū)域進(jìn)行比較、然后交換位置。


以上三種算法均是排序算法當(dāng)中常用到的,或者面試中常問的算法;三個(gè)算法的時(shí)間復(fù)雜度都為O(n2),如果要想使時(shí)間更短的話,那么大家就要去考慮下其他的算法或者去了解下堆這個(gè)概念和分治思想。



如何深度理解排序算法(一)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
青州市| 彭水| 孟津县| 枣庄市| 罗定市| 什邡市| 增城市| 静海县| 宁明县| 建昌县| 黑水县| 汽车| 娱乐| 托里县| 新营市| 丰顺县| 四子王旗| 布尔津县| 沾益县| 内江市| 辰溪县| 东明县| 平舆县| 民县| 常山县| 大石桥市| 盐源县| 衡东县| 武平县| 定兴县| 阿瓦提县| 南江县| 岑溪市| 罗源县| 同江市| 喀什市| 开封市| 江川县| 井研县| 河东区| 南充市|