国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

插入排序算法的復雜性、性能、分析

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

掃碼添加小助手

加入工程師交流群

算法在數據科學和機器學習領域很常見。算法為社交媒體應用程序、谷歌搜索結果、銀行系統等提供動力。因此,數據科學家和 機器學習 實踐者在分析、設計和實現算法方面擁有直覺是至關重要的。

當應用于大規模計算任務時,高效算法為公司節省了數百萬美元,并減少了內存和能源消耗。本文介紹了一種簡單的算法,插入排序。

雖然知道如何實現算法是必不可少的,但本文也包括了數據科學家在選擇利用時應該考慮的插入算法的細節。因此,本文提到了算法復雜性、性能、分析、解釋和利用等因素。

為什么?

重要的是要記住為什么數據科學家應該在解釋和實現之前研究數據結構和算法。

數據科學和 ML 庫和包抽象了常用算法的復雜性。此外,由于抽象,需要 100 行代碼和一些邏輯推導的算法被簡化為簡單的方法調用。這并沒有放棄數據科學家研究算法開發和數據結構的要求。

當給定一組要使用的預構建算法時,確定哪種算法最適合這種情況需要了解基本算法的參數、性能、限制和魯棒性。數據科學家可以在分析并在某些情況下重新實現算法后了解所有這些信息。

選擇正確的特定于問題的算法和排除算法故障的能力是理解算法的兩個最重要的優勢。

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

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

在排序算法的上下文中,數據科學家遇到了數據湖和數據庫,在這些數據湖和數據庫中,如果對包含的數據進行排序,則遍歷元素以識別關系的效率更高。

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

出身背景

什么是排序算法?

排序問題是數據科學家和其他軟件工程師面臨的一個眾所周知的編程問題。排序問題的主要目的是按升序或降序排列一組對象。排序算法是執行的順序指令,用于將列表或數組中的元素有效地重新排序為所需的順序。

分類的目的是什么?

在數據領域中,數據集中元素的結構化組織支持高效遍歷和快速查找特定元素或組。在宏觀層面上,使用高效算法構建的應用程序轉化為引入我們生活的簡單性,如導航系統和搜索引擎。

插入排序是什么?

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

指向當前元素的索引指示排序的位置。排序開始時(索引= 0 ),將當前值與左側相鄰的值進行比較。如果該值大于當前值,則不修改列表;如果相鄰值和當前值是相同的數字,也會出現這種情況。

但是,如果當前值左側的相鄰值較小,則相鄰值位置將向左移動,并且僅當其左側的值較小時才停止向左移動。

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

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

算法步驟和實現( PythonJavaScript )

臺階

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

從未排序元素的列表開始。

從第一項到最后一項遍歷未排序元素的列表。

在每個步驟中,將當前元素與前面所有位置左側的元素進行比較。

如果當前元素小于前面列出的任何元素,則將其向左移動一個位置。

Python 實現

JavaScript 實現

性能和復雜性

在計算機科學領域,“大 O ”表示法是一種測量算法復雜性的策略。在這里,我們不會對大 O 符號太過技術化。不過,值得注意的是,計算機科學家使用這個數學符號來根據時間和空間需求對算法進行量化。

大 O 表示法是根據輸入定義的函數。字母“ n ”通常表示函數輸入的大小。簡單地說, n 表示列表中的元素數。在不同的場景中,實踐者關心函數的最壞情況、最佳情況或平均復雜度。

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

插入排序算法的最佳時間復雜度為 O ( n )時間復雜度。這意味著對列表進行排序所需的時間與列表中元素的數量成正比;當列表的順序已經正確時,就是這種情況。在這種情況下,只有一次迭代,因為當列表已經有序時,內部循環操作是微不足道的。

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

總結

最簡單的排序方法之一是插入排序,它涉及一次一個元素構建一個排序列表。通過將每個未檢查的元素插入排序列表中,在小于它和大于它的元素之間進行排序。正如本文所演示的,這是一個簡單的算法,可以在多種語言中掌握和應用。

通過清晰地描述插入排序算法,伴隨著所涉及的算法程序的逐步分解。數據科學家能夠更好地實現插入排序算法,并探索其他類似的排序算法,如快速排序和氣泡排序等。

對于許多數據科學家來說,算法可能是一個敏感的話題。這可能是由于主題的復雜性。“算法”一詞有時與復雜性有關。有了適當的工具、培訓和時間,即使是最復雜的算法,當您有足夠的時間、信息和資源時也很容易理解。算法是數據科學中使用的基本工具,不容忽視。

關于作者

Richmond Alake 是一名機器學習和計算機視覺工程師,他與多家初創公司和公司合作,整合深度學習模型,以解決商業應用中的計算機視覺任務。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7807

    瀏覽量

    93202
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136948
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    探索LM3880:三軌簡單電源排序器的卓越性能與應用

    探索LM3880:三軌簡單電源排序器的卓越性能與應用 在電子設計領域,電源管理是一個至關重要的環節。今天,我們將深入探討德州儀器(TI)推出的LM3880三軌簡單電源排序器,它為多電壓軌的電源
    的頭像 發表于 02-26 17:20 ?501次閱讀

    探索UCD90320U:32軌PMBus電源排序器與系統管理器的卓越性能

    探索UCD90320U:32軌PMBus電源排序器與系統管理器的卓越性能 在電子設備的設計中,電源管理是至關重要的一環。今天,我們將深入探討德州儀器(TI)推出的UCD90320U 32軌PMBus
    的頭像 發表于 02-26 16:30 ?93次閱讀

    MAX16050/MAX16051:具備反向排序功能的電壓監控與排序電路

    /MAX16051電壓監控/排序電路,憑借其出色的性能和豐富的功能,為工程師們提供了可靠的解決方案。本文將深入介紹這兩款器件的特點、工作原理及應用要點。 文件下載: MAX16051ETI+T.pdf 一、器件
    的頭像 發表于 01-31 17:15 ?784次閱讀

    C語言插入排序算法和代碼

    插入排序排序算法的一種,它不改變原有的序列(數組),而是創建一個新的序列,在新序列上進行操作。   這里以從小到大排序為例進行講解。   基本思想及舉例說明   
    發表于 01-15 06:44

    新思科技全面駕馭AI芯片設計復雜性

    AI 芯片正推動著萬物智能時代的到來:作為高度專用化的處理器和加速器,AI 芯片專為處理復雜算法與海量數據集而設計。但在當今快速變化、競爭激烈的市場中,要打造一款脫穎而出的 AI 芯片,需要具備哪些條件?答案早在芯片制造之前就已揭曉。
    的頭像 發表于 12-24 17:13 ?1258次閱讀
    新思科技全面駕馭AI芯片設計<b class='flag-5'>復雜性</b>

    C語言的常見算法

    ; } } ``` ### 插入排序 (Insertion Sort) ```c void insertionSort(int arr[], int n) { for (int i = 1; i < n
    發表于 11-24 08:29

    HarmonyOS應用代碼混淆技術方案

    代碼混淆技術可以增加代碼的復雜性和模糊,從而提高攻擊者分析代碼的難度。
    的頭像 發表于 11-21 16:17 ?5605次閱讀
    HarmonyOS應用代碼混淆技術方案

    程序運行慢,是否需檢查算法時間復雜度過高?

    程序運行慢,需檢查算法時間復雜度是否過高?
    發表于 11-17 08:08

    復雜的軟件算法硬件IP核的實現

    具體方法與步驟 通過 C 語言實現軟件算法,并驗證了算法的有效以后,就可以進行算法的 HDL 轉化工作了。通過使用 Altium Designer 的 CHC 編譯器(C to H
    發表于 10-30 07:02

    醫療PCB供應鏈復雜性與風險管控

    印刷電路板(PCB)最初作為一種用于承載和連接電子元件的簡單解決方案,并不需要復雜的點對點布線。如今,PCB已成為我們日常生活的重要組成部分,并且隨著技術進步,以前的簡單性逐步讓位于復雜性。現在我們
    的頭像 發表于 10-14 14:17 ?505次閱讀

    深入解析與使用感受:Isograph、Medini與REANA可靠性分析軟件對比

    上海磐時PANSHI“磐時,做汽車企業的安全智庫”深入解析與使用感受:Isograph、Medini與REANA可靠性分析軟件對比汽車行業的復雜性和對安全的高要求,使得傳統的分析工具
    的頭像 發表于 09-05 16:20 ?10次閱讀
    深入解析與使用感受:Isograph、Medini與REANA可靠<b class='flag-5'>性分析</b>軟件對比

    DFT算法與FFT算法的優劣分析

    一概述 在諧波分析儀中,我們常常提到的兩個詞語,就是DFT算法與FFT算法,那么一款功率分析儀/諧波分析儀采用DFT
    的頭像 發表于 08-04 09:30 ?1405次閱讀

    Molex連接器如何應對汽車復雜性設計挑戰

    有百余年歷史的汽車行業正沿著電氣化、智能化、網聯化的趨勢發生深刻變革——對于這一論斷,想必大家今天不僅是耳熟能詳,而且已經是深有體會了。
    的頭像 發表于 07-11 14:25 ?2717次閱讀

    新型光伏氣象站在復雜地形條件下的適應性能評估

    實際案例和多種評估方法,深入分析其在不同復雜地形下的適應性能,為光伏電站在復雜地形區域的建設與運行提供科學依據,以提升光伏發電的效率和可
    的頭像 發表于 03-26 11:00 ?764次閱讀

    Marvell展示2納米芯片3D堆疊技術,應對設計復雜性挑戰!

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