一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

插入排序算法的復(fù)雜性、性能、分析

星星科技指導(dǎo)員 ? 來(lái)源:NVIDIA ? 作者:Richmond Alake ? 2022-04-08 14:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

算法在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域很常見(jiàn)。算法為社交媒體應(yīng)用程序、谷歌搜索結(jié)果、銀行系統(tǒng)等提供動(dòng)力。因此,數(shù)據(jù)科學(xué)家和 機(jī)器學(xué)習(xí) 實(shí)踐者在分析、設(shè)計(jì)和實(shí)現(xiàn)算法方面擁有直覺(jué)是至關(guān)重要的。

當(dāng)應(yīng)用于大規(guī)模計(jì)算任務(wù)時(shí),高效算法為公司節(jié)省了數(shù)百萬(wàn)美元,并減少了內(nèi)存和能源消耗。本文介紹了一種簡(jiǎn)單的算法,插入排序。

雖然知道如何實(shí)現(xiàn)算法是必不可少的,但本文也包括了數(shù)據(jù)科學(xué)家在選擇利用時(shí)應(yīng)該考慮的插入算法的細(xì)節(jié)。因此,本文提到了算法復(fù)雜性、性能、分析、解釋和利用等因素。

為什么?

重要的是要記住為什么數(shù)據(jù)科學(xué)家應(yīng)該在解釋和實(shí)現(xiàn)之前研究數(shù)據(jù)結(jié)構(gòu)和算法。

數(shù)據(jù)科學(xué)和 ML 庫(kù)和包抽象了常用算法的復(fù)雜性。此外,由于抽象,需要 100 行代碼和一些邏輯推導(dǎo)的算法被簡(jiǎn)化為簡(jiǎn)單的方法調(diào)用。這并沒(méi)有放棄數(shù)據(jù)科學(xué)家研究算法開(kāi)發(fā)和數(shù)據(jù)結(jié)構(gòu)的要求。

當(dāng)給定一組要使用的預(yù)構(gòu)建算法時(shí),確定哪種算法最適合這種情況需要了解基本算法的參數(shù)、性能、限制和魯棒性。數(shù)據(jù)科學(xué)家可以在分析并在某些情況下重新實(shí)現(xiàn)算法后了解所有這些信息。

選擇正確的特定于問(wèn)題的算法和排除算法故障的能力是理解算法的兩個(gè)最重要的優(yōu)勢(shì)。

K-Means 、 BIRCH 和 Mean Shift 都是常用的 clustering 算法,數(shù)據(jù)科學(xué)家決不具備從頭開(kāi)始實(shí)施這些算法的知識(shí)。盡管如此,數(shù)據(jù)科學(xué)家仍有必要了解每種算法的特性及其對(duì)特定數(shù)據(jù)集的適用性。

例如,基于質(zhì)心的算法有利于高密度數(shù)據(jù)集,在這些數(shù)據(jù)集中可以清楚地定義集群。相反,在處理噪聲數(shù)據(jù)集時(shí),首選基于密度的算法,如 DBSCAN (基于密度的帶噪聲應(yīng)用程序空間聚類(lèi))。

在排序算法的上下文中,數(shù)據(jù)科學(xué)家遇到了數(shù)據(jù)湖和數(shù)據(jù)庫(kù),在這些數(shù)據(jù)湖和數(shù)據(jù)庫(kù)中,如果對(duì)包含的數(shù)據(jù)進(jìn)行排序,則遍歷元素以識(shí)別關(guān)系的效率更高。

識(shí)別適用于數(shù)據(jù)集的庫(kù)子例程需要了解各種排序算法和首選的數(shù)據(jù)結(jié)構(gòu)類(lèi)型。使用數(shù)組時(shí),快速排序算法是有利的,但如果數(shù)據(jù)以鏈表形式顯示,則合并排序的性能更高,尤其是在大數(shù)據(jù)集的情況下。不過(guò),兩者都使用分而治之的策略對(duì)數(shù)據(jù)進(jìn)行排序。

出身背景

什么是排序算法?

排序問(wèn)題是數(shù)據(jù)科學(xué)家和其他軟件工程師面臨的一個(gè)眾所周知的編程問(wèn)題。排序問(wèn)題的主要目的是按升序或降序排列一組對(duì)象。排序算法是執(zhí)行的順序指令,用于將列表或數(shù)組中的元素有效地重新排序?yàn)樗璧捻樞颉?/p>

分類(lèi)的目的是什么?

在數(shù)據(jù)領(lǐng)域中,數(shù)據(jù)集中元素的結(jié)構(gòu)化組織支持高效遍歷和快速查找特定元素或組。在宏觀層面上,使用高效算法構(gòu)建的應(yīng)用程序轉(zhuǎn)化為引入我們生活的簡(jiǎn)單性,如導(dǎo)航系統(tǒng)和搜索引擎。

插入排序是什么?

插入排序算法涉及基于列表中每個(gè)元素與其相鄰元素的迭代比較創(chuàng)建的排序列表。

指向當(dāng)前元素的索引指示排序的位置。排序開(kāi)始時(shí)(索引= 0 ),將當(dāng)前值與左側(cè)相鄰的值進(jìn)行比較。如果該值大于當(dāng)前值,則不修改列表;如果相鄰值和當(dāng)前值是相同的數(shù)字,也會(huì)出現(xiàn)這種情況。

但是,如果當(dāng)前值左側(cè)的相鄰值較小,則相鄰值位置將向左移動(dòng),并且僅當(dāng)其左側(cè)的值較小時(shí)才停止向左移動(dòng)。

該圖說(shuō)明了插入算法在未排序列表上執(zhí)行的步驟。下圖中的列表按升序排列(從低到高)。

圖 1 : GIF 中的插入排序 (此文件在 Creative Commons 下獲得許可)。

算法步驟和實(shí)現(xiàn)( PythonJavaScript )

臺(tái)階

要按升序排列元素列表,插入排序算法需要以下操作:

從未排序元素的列表開(kāi)始。

從第一項(xiàng)到最后一項(xiàng)遍歷未排序元素的列表。

在每個(gè)步驟中,將當(dāng)前元素與前面所有位置左側(cè)的元素進(jìn)行比較。

如果當(dāng)前元素小于前面列出的任何元素,則將其向左移動(dòng)一個(gè)位置。

Python 實(shí)現(xiàn)

JavaScript 實(shí)現(xiàn)

性能和復(fù)雜性

在計(jì)算機(jī)科學(xué)領(lǐng)域,“大 O ”表示法是一種測(cè)量算法復(fù)雜性的策略。在這里,我們不會(huì)對(duì)大 O 符號(hào)太過(guò)技術(shù)化。不過(guò),值得注意的是,計(jì)算機(jī)科學(xué)家使用這個(gè)數(shù)學(xué)符號(hào)來(lái)根據(jù)時(shí)間和空間需求對(duì)算法進(jìn)行量化。

大 O 表示法是根據(jù)輸入定義的函數(shù)。字母“ n ”通常表示函數(shù)輸入的大小。簡(jiǎn)單地說(shuō), n 表示列表中的元素?cái)?shù)。在不同的場(chǎng)景中,實(shí)踐者關(guān)心函數(shù)的最壞情況、最佳情況或平均復(fù)雜度。

插入排序算法的最壞情況(和平均情況)復(fù)雜度為 O ( n 2)。這意味著,在最壞的情況下,對(duì)列表進(jìn)行排序所需的時(shí)間與列表中元素?cái)?shù)量的平方成正比。

插入排序算法的最佳時(shí)間復(fù)雜度為 O ( n )時(shí)間復(fù)雜度。這意味著對(duì)列表進(jìn)行排序所需的時(shí)間與列表中元素的數(shù)量成正比;當(dāng)列表的順序已經(jīng)正確時(shí),就是這種情況。在這種情況下,只有一次迭代,因?yàn)楫?dāng)列表已經(jīng)有序時(shí),內(nèi)部循環(huán)操作是微不足道的。

插入排序常用于排列小列表。另一方面,插入排序并不是處理包含大量元素的大型列表的最有效方法。值得注意的是,在使用鏈表時(shí),最好使用插入排序算法。雖然該算法可以應(yīng)用于數(shù)組中結(jié)構(gòu)化的數(shù)據(jù),但其他排序算法,如快速排序,也可以應(yīng)用于其他排序算法。

總結(jié)

最簡(jiǎn)單的排序方法之一是插入排序,它涉及一次一個(gè)元素構(gòu)建一個(gè)排序列表。通過(guò)將每個(gè)未檢查的元素插入排序列表中,在小于它和大于它的元素之間進(jìn)行排序。正如本文所演示的,這是一個(gè)簡(jiǎn)單的算法,可以在多種語(yǔ)言中掌握和應(yīng)用。

通過(guò)清晰地描述插入排序算法,伴隨著所涉及的算法程序的逐步分解。數(shù)據(jù)科學(xué)家能夠更好地實(shí)現(xiàn)插入排序算法,并探索其他類(lèi)似的排序算法,如快速排序和氣泡排序等。

對(duì)于許多數(shù)據(jù)科學(xué)家來(lái)說(shuō),算法可能是一個(gè)敏感的話題。這可能是由于主題的復(fù)雜性?!八惴ā币辉~有時(shí)與復(fù)雜性有關(guān)。有了適當(dāng)?shù)墓ぞ?、培?xùn)和時(shí)間,即使是最復(fù)雜的算法,當(dāng)您有足夠的時(shí)間、信息和資源時(shí)也很容易理解。算法是數(shù)據(jù)科學(xué)中使用的基本工具,不容忽視。

關(guān)于作者

Richmond Alake 是一名機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)工程師,他與多家初創(chuàng)公司和公司合作,整合深度學(xué)習(xí)模型,以解決商業(yè)應(yīng)用中的計(jì)算機(jī)視覺(jué)任務(wù)。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    新型光伏氣象站在復(fù)雜地形條件下的適應(yīng)性能評(píng)估

    實(shí)際案例和多種評(píng)估方法,深入分析其在不同復(fù)雜地形下的適應(yīng)性能,為光伏電站在復(fù)雜地形區(qū)域的建設(shè)與運(yùn)行提供科學(xué)依據(jù),以提升光伏發(fā)電的效率和可
    的頭像 發(fā)表于 03-26 11:00 ?350次閱讀

    Marvell展示2納米芯片3D堆疊技術(shù),應(yīng)對(duì)設(shè)計(jì)復(fù)雜性挑戰(zhàn)!

    隨著現(xiàn)代科技的迅猛發(fā)展,芯片設(shè)計(jì)面臨著前所未有的挑戰(zhàn)。特別是在集成電路(IC)領(lǐng)域,隨著設(shè)計(jì)復(fù)雜性的增加,傳統(tǒng)的光罩尺寸已經(jīng)成為制約芯片性能和功能擴(kuò)展的瓶頸。為了解決這一問(wèn)題,3D堆疊技術(shù)應(yīng)運(yùn)而生
    的頭像 發(fā)表于 03-07 11:11 ?522次閱讀
    Marvell展示2納米芯片3D堆疊技術(shù),應(yīng)對(duì)設(shè)計(jì)<b class='flag-5'>復(fù)雜性</b>挑戰(zhàn)!

    負(fù)載的重要作用

    特性對(duì)于理解和設(shè)計(jì)復(fù)雜的電路系統(tǒng)至關(guān)重要。 通過(guò)分析負(fù)載的電壓和電流關(guān)系,可以預(yù)測(cè)電路的行為,并設(shè)計(jì)出滿足特定需求的電路。 穩(wěn)定性與可靠: 阻
    發(fā)表于 01-07 15:18

    TimSort:一個(gè)在標(biāo)準(zhǔn)函數(shù)庫(kù)中廣泛使用的排序算法

    在計(jì)算機(jī)科學(xué)的領(lǐng)域,排序算法是每位學(xué)生必學(xué)的基礎(chǔ),而排序的需求是每位程序員在編程過(guò)程中都會(huì)遇到的。 在你輕松調(diào)用 .sort() 方法對(duì)數(shù)據(jù)進(jìn)行排序時(shí),是否曾好奇過(guò),這個(gè)簡(jiǎn)單的方法背后
    的頭像 發(fā)表于 01-03 11:42 ?569次閱讀

    芯片的失效分析與應(yīng)對(duì)方法

    老化的內(nèi)在機(jī)理,揭示芯片失效問(wèn)題的復(fù)雜性,并提出針對(duì)的應(yīng)對(duì)策略,為提升芯片可靠提供全面的分析與解決方案,助力相關(guān)行業(yè)在芯片應(yīng)用中有效應(yīng)對(duì)挑戰(zhàn),保障系統(tǒng)的高效穩(wěn)定
    的頭像 發(fā)表于 12-20 10:02 ?2370次閱讀
    芯片的失效<b class='flag-5'>性</b><b class='flag-5'>分析</b>與應(yīng)對(duì)方法

    集成電路電磁兼容及應(yīng)對(duì)措施相關(guān)分析(一) — 電子系統(tǒng)性能要求與ESD問(wèn)題

    浪費(fèi)。在開(kāi)發(fā)過(guò)程中,為了解決 EMC 問(wèn)題,需要投入大量的人力、物力和時(shí)間進(jìn)行測(cè)試、改進(jìn)和優(yōu)化,這增加了開(kāi)發(fā)的復(fù)雜性和成本,同時(shí)也可能導(dǎo)致項(xiàng)目延期。 一、電子系統(tǒng)性能要求與ESD問(wèn)題 l 電子模塊開(kāi)發(fā)中的EMC問(wèn)題: 工業(yè)、消費(fèi)及汽車(chē)電子系統(tǒng)必須滿足不
    的頭像 發(fā)表于 12-17 09:24 ?571次閱讀
    集成電路電磁兼容<b class='flag-5'>性</b>及應(yīng)對(duì)措施相關(guān)<b class='flag-5'>分析</b>(一) — 電子系統(tǒng)<b class='flag-5'>性能</b>要求與ESD問(wèn)題

    復(fù)雜光波導(dǎo)器件中控制MTF分析的精度和速度間的平衡

    摘要 在增強(qiáng)現(xiàn)實(shí)和混合現(xiàn)實(shí)應(yīng)用(AR/MR)領(lǐng)域的波導(dǎo)器件的設(shè)計(jì)過(guò)程中,準(zhǔn)確計(jì)算可實(shí)現(xiàn)的光學(xué)性能是其主要任務(wù)之一。除了空間和角度均勻外,一個(gè)非常重要的量是調(diào)制傳遞函數(shù)(MTF),它可以評(píng)估最終
    發(fā)表于 12-17 08:50

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡(jiǎn)介

    內(nèi)容簡(jiǎn)介這是一本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通算法研發(fā)到數(shù)字IC設(shè)計(jì)的實(shí)現(xiàn)屏障,以及指導(dǎo)芯片設(shè)計(jì)工程師從底層掌握復(fù)雜電路設(shè)計(jì)與優(yōu)化方法為目標(biāo)的專(zhuān)業(yè)技術(shù)書(shū)。任何芯片(如WiFi芯片、5G芯片
    發(fā)表于 11-21 17:14

    魯棒分析方法及其應(yīng)用

    魯棒(Robustness)是指系統(tǒng)或方法對(duì)于外部干擾、誤差或變化的穩(wěn)定性和適應(yīng)能力。以下是對(duì)魯棒分析方法的詳細(xì)介紹,以及其在不同領(lǐng)域的應(yīng)用實(shí)例。 一、魯棒
    的頭像 發(fā)表于 11-11 10:21 ?8851次閱讀

    光伏連接器外殼:超越簡(jiǎn)單塑料的復(fù)雜性與重要

    將深入探討光伏連接器外殼的設(shè)計(jì)要求及其超越簡(jiǎn)單塑料的復(fù)雜性與重要。 一、光伏連接器外殼的設(shè)計(jì)要求 材料選擇 光伏連接器的外殼并非簡(jiǎn)單的塑料,而是需要經(jīng)過(guò)精心選擇的材料,以滿足以下要求: 耐候:光伏系統(tǒng)通常安
    的頭像 發(fā)表于 11-04 14:50 ?513次閱讀
    光伏連接器外殼:超越簡(jiǎn)單塑料的<b class='flag-5'>復(fù)雜性</b>與重要<b class='flag-5'>性</b>

    時(shí)間復(fù)雜度為 O(n^2) 的排序算法

    作者:京東保險(xiǎn) 王奕龍 對(duì)于小規(guī)模數(shù)據(jù),我們可以選用時(shí)間復(fù)雜度為 O(n2) 的排序算法。因?yàn)闀r(shí)間復(fù)雜度并不代表實(shí)際代碼的執(zhí)行時(shí)間,它省去了低階、系數(shù)和常數(shù),僅代表的增長(zhǎng)趨勢(shì),所以在小
    的頭像 發(fā)表于 10-19 16:31 ?1734次閱讀
    時(shí)間<b class='flag-5'>復(fù)雜</b>度為 O(n^2) 的<b class='flag-5'>排序</b><b class='flag-5'>算法</b>

    淺談邏輯分析儀的技術(shù)原理和應(yīng)用領(lǐng)域

    。這些分析功能有助于工程師快速定位故障原因、驗(yàn)證系統(tǒng)設(shè)計(jì)的正確以及調(diào)試復(fù)雜算法和高速數(shù)據(jù)傳輸。 此外,邏輯分析儀還具備高精度定時(shí)、多通道
    發(fā)表于 09-12 15:04

    為什么電路要設(shè)計(jì)得這么復(fù)雜?

    電路設(shè)計(jì)的復(fù)雜性主要源于以下幾個(gè)方面: 功能需求:電路需要實(shí)現(xiàn)特定的功能,如信號(hào)處理、數(shù)據(jù)傳輸、控制等。為了實(shí)現(xiàn)這些功能,電路必須包含相應(yīng)的電子元件和連接,這自然增加了設(shè)計(jì)的復(fù)雜性。 性能要求:電路
    的頭像 發(fā)表于 08-21 17:32 ?949次閱讀

    飛凌OK-全志T527開(kāi)發(fā)板nbench性能測(cè)試

    -計(jì)算波形級(jí)數(shù)近似的數(shù)值分析程序。 ASSIGNMENT一個(gè)著名的任務(wù)分配算法。 IDEA一種比較新的分組密碼算法。 HUFFMAN哈夫曼壓縮-一個(gè)著名的文本和圖形壓縮算法。 NEUR
    發(fā)表于 08-20 10:25

    戴爾科技如何幫助客戶克服多云環(huán)境的復(fù)雜性

    進(jìn)入智能化時(shí)代,云的基礎(chǔ)設(shè)施地位更加穩(wěn)固。在云上運(yùn)行人工智能,可以更全面地收集、使用和分析數(shù)據(jù),從而形成更加深刻的洞察。
    的頭像 發(fā)表于 07-30 11:22 ?782次閱讀