女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

3天內不再提示

插入排序和冒泡排序哪個更牛逼?

算法與數據結構 ? 來源:算法與數據結構 ? 2019-11-27 16:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫在前邊

排序對于每個開發者來講,都多多少少知道幾個經典的排序算法,比如我們之前以動畫形式分享的冒泡排序,也包括今天要分享的插入排序。還有一些其他經典的排序,小鹿整理的共有十種是面試常問到的,冒泡排序、插入排序、希爾排序、選擇排序、歸并排序、快速排序、堆排序、桶排序、計數排序、基數排序。

雖然我們基本知道了這些排序算法,但是在實際項目開發以及面試中往往出乎我們所料。在面試中,經常會被問到各種排序之間的比較;在實際項目中,往往排序的數據不是我們所練習的整數。

那么今天我們來學習一下,插入排序比我們之前講的冒泡排序有什么區別呢?面試官問我們,我們如何回答完整呢?

思維導圖

1

如何分析一個排序算法?

之前寫的一篇很詳細的文章。

佩奇學編程 | 復雜度分析原來這么簡單

分析排序算法已經成為我們衡量一個算法優良的重要標準,從以下三個方面入手。

1.1 時間效率

這里所謂的實踐效率就是時間復雜度,相信大家對于時間復雜度并不陌生。

復雜度描述的是算法執行時間(或占用空間)與數據規模的增長關系。

對于時間復雜度的分析,要把最好時間復雜度、最壞時間復雜度、平均時間復雜度分析出來,分別對應了排序算法的最好排序情況、最壞排序情況以及平均排序效率。

1.2 空間消耗

所謂的空間消耗對應的是空間復雜度,在排序算法中需要開辟的額外內存空間是多少。如果空間復雜度為 O(1),此時該排序叫做原地排序。

注意:是額外的內存空間,存儲排序數據消耗的空間不計。

1.3 穩定性

算法的穩定性雖然我們之前接觸的很少,但是穩定性也是衡量一個排序算法的重要標準。什么是穩定排序呢?比如有一組有重復待排序的數據,排序前后,重復的數據順序不變,此時該排序為穩定排序。否則,叫做不穩定排序。它在實際應用中非常重要的,今天我們就不多說,以后會慢慢分享到。

2

什么是插入排序?

顧名思義,插入排序就是通過插入的方式來排序唄,最經典的就是打斗地主,可以將打亂的撲克牌作為未排序區間,手中已經排好序的作為排序區間。每次我們摸牌的過程,就是從未排序區間,通過插入的方式,插入到已排序區間。那么這個過程就稱為插入排序。

3

如何實現插入排序?

上述插入排序的概念我們已經理解了,那么給你一組數據,如何來進行插入排序呢?

首先我們要將數據劃分為兩個區間,已排序區間和未排序區間。

我們從未排序區間取出數據和已排序區間的數據進行比較,如果小于已排序區間的數據,那我們就交換數據。

如果交換到已排序區間數據不在大于插入的數據,然后將元素插入進去。

最后我們看一下總的插入排序動畫和代碼實現。

4

插入排序的性能

我們通過上邊的對插入排序的拆分講解和動畫以及代碼實現,想必面試官讓你手寫一個插入排序可以輕輕松松寫出。但是我們掌握的插入排序知識還往往不夠,我們在實際項目中,還要考慮插入排序的性能怎么樣?因為才能更好的選擇適當排序應用到項目中去。

4.1 插入排序的穩定性

再插入排序中,如果存在重復數據的話,前邊的元素再插入的過程永遠在第二個重復數據的前邊,所以插入排序后的重復數據前后順序不變,所以插入排序是穩定排序算法。

4.2 插入排序的空間消耗

我們可以發現,插入排序的移動方式,需要消耗常量級的額外內存空間存儲,也就是代碼中的 temp,所以時間復雜度為 O(1),我們上邊講到,空間復雜度為O(1)的是原地排序算法。

4.3 插入排序的時間效率

插入排序的最好情況就是不需要搬移任何數據,從頭到尾尋找插入數據,每次只比較一次即可,即一組有序數據,所以最好時間復雜度為O(n)。

如果一組數據正好是倒序輸出,那么每次都需要比較移動所有數據,每次移動時 n,n 個數據時間復雜度為O(n2)。

對于插入排序的平均時間復雜度,每次插入都要移動數據,插入 n 次,所以平均時間復雜度為 O(n2)。

5

小結

我們學完了今天的插入排序之后,我們回到最初的面試官問題上。插入排序和冒泡排序哪個更好呢?

我們現在元素移動次數上進行分析,如果一組無序的數據通過冒泡排序排好序之后,它的交換次數是這種數據的逆序度;對于插入排序來說也是一樣的,移動次數上都是原本數據的逆序度。

元素的移動次數是相同的,那我們接下來看看元素的交換次數。從代碼上分析可以明顯看出,冒泡排序的一次交換需要三行代碼,而插入排序的交換卻需要一行,所以總的交換次數冒泡排序大于插入排序。

有小伙伴會問,這兩行的差別有那么大嗎?移動一次,我們可以不計較,如果數據很多,想想下,兩者的效率差別很輕易的就比較出來了。

雖然冒泡排序的時間復雜度和插入排序的時間復雜度是相同的,但是我們實際使用中還是優先選擇插入排序。

對于插入排序還是可以優化的,對了,沒錯,就是希爾排序,我們在這不多分開寫,后期會繼續更新。

如果覺得寫的有幫助,歡迎轉發朋友圈圈哦!

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

    關注

    23

    文章

    4705

    瀏覽量

    95087
  • 排序
    +關注

    關注

    0

    文章

    32

    瀏覽量

    9830

原文標題:動畫:面試官問我插入排序和冒泡排序哪個更牛逼?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Analog Devices Inc. MAX16895 監控電路特性/應用/功能圖

    Analog Devices MAX16895監控電路是小型、低功耗、電壓監控電路,具有排序功能。這些器件具有可調的、低至0.5V的電壓監控閾值,并可利用外部電容調節延遲時間。這些Analog Devices器件非常適合用于電源排序、復位
    的頭像 發表于 06-26 09:34 ?83次閱讀
    Analog Devices Inc. MAX16895 監控電路特性/應用/功能圖

    低成本電源排序器解決方案

    絕大多數負載點DC-DC轉換器可以將上一個轉換器的電源就緒輸出連接至下一個轉換器的使能輸入,實現上電排序。這種方法只適合比較簡單的設計,不能滿足多數現代微處理器和DSP的要求一這類器件要求斷電順序必須與上電順序相反。許多廠商針對這類應用推出了可編程排序IC,但器件價格較為
    的頭像 發表于 05-21 09:55 ?469次閱讀
    低成本電源<b class='flag-5'>排序</b>器解決方案

    如何區分usb-typec是插入電腦還是插入其他電源?

    使用的是01的板子,要做成在usb插入電腦時,使用uvc相機, usb插入電源時使用顯示屏播放 如何判斷設備是插入到電腦還是電源,是通過某個設備節點還是什么? 需要先運行
    發表于 04-24 08:23

    UCD9224 2 MHz、2 軌、4 相數字 PWM 降壓控制器,具有改進的排序功能技術資料

    和管理。 UCD9224 旨在為非隔離式 DC/DC 轉換器應用提供各種理想的功能,同時通過減少外部電路來最大限度地減少系統組件總數。該解決方案將多回路管理與排序、裕度、跟蹤和智能相位管理集成在一起,以優化整體系統效率。此外,還支持環路補償和校準,無需添加外部元件。
    的頭像 發表于 03-28 15:44 ?285次閱讀
    UCD9224 2 MHz、2 軌、4 相數字 PWM 降壓控制器,具有改進的<b class='flag-5'>排序</b>功能技術資料

    TPS74701-Q1 具有電源正常功能的汽車類 500mA、低 VIN (0.8V)、可調超低壓差穩壓器數據手冊

    型的處理器和 ASIC 供電而設計。使能輸入和電源就緒輸出允許使用外部穩壓器輕松排序,從而允許配置滿足具有特殊啟動要求的廣泛應用的排序要求的解決方案。
    的頭像 發表于 03-06 14:46 ?495次閱讀
    TPS74701-Q1 具有電源正常功能的汽車類 500mA、低 VIN (0.8V)、可調超低壓差穩壓器數據手冊

    CS1237數據跳動幫忙看看是什么原因造成的?

    公司項目, 用CS1237 稱重 有兩個問題: 第一情況:輸出速度只能選擇00和01 大于01.寫入和讀取就一致 所以項目現在用的是0x1C 第二:有傳感器插入,但是是沒有物品的時候 連續讀10次
    發表于 02-17 10:43

    插入式電磁流量計的應用范圍要知道

    插入式電磁流量計的結構比較簡單,沒有可活動部件,測量數值比較準確,比其他安裝形式的電磁流量計體積小便于安裝。且插入式電磁流量計的應用范圍一點不比管段式的少,接下來我們詳細說說插入式電磁流量計
    的頭像 發表于 02-07 15:35 ?420次閱讀
    <b class='flag-5'>插入</b>式電磁流量計的應用范圍要知道

    詳解Linux sort命令之掌握排序技巧與實用案例

    在linux系統使用過程中,提供了sort排序命令,支持常用的排序功能。 常用參數 sort命令支持很多參數,常用參數如下: ? 短參數 長參數 說明 -n – number-sort 按字符串數值
    的頭像 發表于 01-09 10:10 ?875次閱讀

    TimSort:一個在標準函數庫中廣泛使用的排序算法

    在計算機科學的領域,排序算法是每位學生必學的基礎,而排序的需求是每位程序員在編程過程中都會遇到的。 在你輕松調用 .sort() 方法對數據進行排序時,是否曾好奇過,這個簡單的方法背后使用的是哪種
    的頭像 發表于 01-03 11:42 ?541次閱讀

    ADS131A04使用外部基準Vref 5V和內部4V基準,如果5V精度是0.05%,轉換結果哪個準?

    你好! 1、使用外部基準Vref 5V和內部4V基準,如果5V精度是0.05%,轉換結果哪個準?資料里沒有寫4V的精度 與溫漂 2、如果模擬輸入是基準5V/2,使用最高有效位數(OSR4096,1K,gain =1)轉換結果數據波動大不大?
    發表于 11-21 07:15

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

    作者:京東保險 王奕龍 對于小規模數據,我們可以選用時間復雜度為 O(n2) 的排序算法。因為時間復雜度并不代表實際代碼的執行時間,它省去了低階、系數和常數,僅代表的增長趨勢,所以在小規模數據情況下
    的頭像 發表于 10-19 16:31 ?1681次閱讀
    時間復雜度為 O(n^2) 的<b class='flag-5'>排序</b>算法

    TPS54120排序和跟蹤

    電子發燒友網站提供《TPS54120排序和跟蹤.pdf》資料免費下載
    發表于 10-10 10:54 ?0次下載
    TPS54120<b class='flag-5'>排序</b>和跟蹤

    芯干線科技CEO說氮化鎵

    氮化鎵是一種由氮和鎵結合而來的化合物,其中氮在元素周期表排序第7位,鎵排序第31位,7月31日世界氮化鎵日因此得名,同時也以英文名GaN Day傳播到全球,并獲得行業廣泛認可。
    的頭像 發表于 08-21 10:03 ?1053次閱讀

    鋰電池還是鎳氫電池哪個耐用

    鋰電池和鎳氫電池各有優勢,具體哪個耐用要根據實際的應用場景和需求來決定。 一、引言 隨著科技的進步,電池作為能源存儲的重要組件,在各類電子設備、電動汽車及儲能系統中發揮著至關重要的作用。其中
    的頭像 發表于 07-19 15:47 ?1488次閱讀

    tensorflow和pytorch哪個簡單?

    PyTorch簡單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個易于使用、靈活且具有強大社區支持的框架,PyTorch可能是一個更好的選擇。如果您需要一個在
    的頭像 發表于 07-05 09:45 ?1410次閱讀
    主站蜘蛛池模板: 乐山市| 高唐县| 民乐县| 东源县| 安国市| 白城市| 北安市| 崇仁县| 马龙县| 南陵县| 陵川县| 河间市| 博爱县| 石楼县| 双江| 汉川市| 商都县| 双鸭山市| 勐海县| 永州市| 麦盖提县| 阜康市| 甘孜| 长宁区| 巢湖市| 广汉市| 武平县| 寿宁县| 淅川县| 永年县| 镇安县| 甘肃省| 洞头县| 阿克陶县| 峨边| 平遥县| 德州市| 自治县| 高阳县| 贺州市| 正安县|