91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

為什么?

重要的是要記住為什么數(shù)據(jù)科學家應該在解釋和實現(xiàn)之前研究數(shù)據(jù)結構和算法。

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

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

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

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

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

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

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

出身背景

什么是排序算法?

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

分類的目的是什么?

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

插入排序是什么?

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

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

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

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

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

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

臺階

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

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

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

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

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

Python 實現(xiàn)

JavaScript 實現(xiàn)

性能和復雜性

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

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

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

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

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

總結

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

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

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

關于作者

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

審核編輯:郭婷

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

    關注

    19

    文章

    7809

    瀏覽量

    93222
  • 機器學習
    +關注

    關注

    66

    文章

    8554

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    MAX16050/MAX16051:具備反向排序功能的電壓監(jiān)控與排序電路

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

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

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

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

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

    C語言的常見算法

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

    HarmonyOS應用代碼混淆技術方案

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

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

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

    復雜的軟件算法硬件IP核的實現(xiàn)

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

    醫(yī)療PCB供應鏈復雜性與風險管控

    印刷電路板(PCB)最初作為一種用于承載和連接電子元件的簡單解決方案,并不需要復雜的點對點布線。如今,PCB已成為我們?nèi)粘I畹闹匾M成部分,并且隨著技術進步,以前的簡單性逐步讓位于復雜性?,F(xiàn)在我們
    的頭像 發(fā)表于 10-14 14:17 ?519次閱讀

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

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

    信號發(fā)生器如何與波束賦形算法配合優(yōu)化?

    場景中的多徑傳播、干擾和用戶移動,從而驗證和優(yōu)化波束賦形算法性能。以下是具體配合優(yōu)化方法及實施步驟:一、信號發(fā)生器在波束賦形優(yōu)化中的核心作用 模擬多徑信道環(huán)境 功能:生成包含多徑時延、角度擴展
    發(fā)表于 08-08 14:41

    DFT算法與FFT算法的優(yōu)劣分析

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

    Molex連接器如何應對汽車復雜性設計挑戰(zhàn)

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

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

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