日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

熟練掌握常用的排序算法

冬至配餃子 ? 來源:嵌入式案例Show ? 作者:嵌Sir ? 2022-08-20 09:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、前言

排序是數(shù)據(jù)處理中經(jīng)常運用的一種重要運算,排序的功能是將一個數(shù)據(jù)元素(記錄)的任意序列,重新排列成一個按照一個規(guī)則有序的序列。常用的排序算法我們要熟練掌握。

2、冒泡排序

冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。

示例:

poYBAGMAOruAL01VAAEBj1wgHog062.png

3、選擇排序

選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最?。ù螅┰兀缓蠓诺揭雅判蛐蛄械哪┪?。以此類推,直到所有元素均排序完畢。

示例:

pYYBAGMAOtKAddFZAADE9s8DT38780.png

4、插入排序

插入排序(英語:Insertion Sort)是一種簡單直觀的排序算法。它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。插入排序在實現(xiàn)上,通常采用in-place排序,因而在從后向前掃描過程中,需要反復(fù)把已排序元素逐步向后挪位,為最新元素提供插入空間。

示例:

poYBAGMAOuSAMzv8AAB-sAsyGzI328.png

5、希爾排序

希爾排序,也稱遞減增量排序算法,是插入排序的一種更高效的改進(jìn)版本。希爾排序是非穩(wěn)定排序算法。

希爾排序是基于插入排序的以下兩點性質(zhì)而提出改進(jìn)方法的:

插入排序在對幾乎已經(jīng)排好序的數(shù)據(jù)操作時,效率高,即可以達(dá)到線性排序的效率

但插入排序一般來說是低效的,因為插入排序每次只能將數(shù)據(jù)移動一位

希爾排序先將待排記錄序列分割成為若干子序列分別進(jìn)行插入排序,待整個序列中的記錄"基本有序"時,再對全體記錄進(jìn)行一次直接插入排序。

示例:

pYYBAGMAOvaAY8bDAACfNRPrx-0060.png

6、歸并排序

歸并排序應(yīng)用的是分治的思想,將大隊列劃分成小隊列,然后小隊列內(nèi)排序,再將排好序的小隊列組合成大隊列,步驟:

1、將劃分成兩個隊列直到不可再分為止

2、小隊列內(nèi)排序

3、左隊列與右隊列合并

4、返回合并的隊列

示例:

poYBAGMAOxuAA4jjAAEh-jcUQj8079.png

7、快速排序

快速排序的基本思想是:通過一趟排序?qū)⒋庞涗浄指畛瑟毩⒌膬刹糠?,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可分別對這兩部分記錄繼續(xù)進(jìn)行排序,已達(dá)到整個序列有序。一趟快速排序的具體過程可描述為:從待排序列中任意選取一個記錄(通常選取第一個記錄)作為基準(zhǔn)值,然后將記錄中關(guān)鍵字比它小的記錄都安置在它的位置之前,將記錄中關(guān)鍵字比它大的記錄都安置在它的位置之后。這樣,以該基準(zhǔn)值為分界線,將待排序列分成的兩個子序列。

一趟快速排序的具體做法為:設(shè)置兩個指針low和high分別指向待排序列的開始和結(jié)尾,記錄下基準(zhǔn)值baseval(待排序列的第一個記錄),然后先從high所指的位置向前搜索直到找到一個小于baseval的記錄并互相交換,接著從low所指向的位置向后搜索直到找到一個大于baseval的記錄并互相交換,重復(fù)這兩個步驟直到low=high為止

示例:

poYBAGMAO0CAHg1AAAEAiKJZq68115.pngpYYBAGMAO0aAErN_AABxdMH6wck722.png



審核編輯:劉清

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

    關(guān)注

    23

    文章

    4810

    瀏覽量

    98603
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    71972
  • 數(shù)據(jù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    655

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    嵌入式春招筆試高頻算法題(附解題思路)

    要求” 其實,嵌入式春招筆試的算法題,不考偏題、難題,重點考察“基礎(chǔ)算法+嵌入式場景適配”,核心題型就那幾種,只要掌握解題思路、熟練代碼實現(xiàn),就能穩(wěn)穩(wěn)拿分。 今天這篇,專為備戰(zhàn)
    發(fā)表于 03-18 10:08

    Kubernetes kubectl命令行工具詳解

    kubectl是Kubernetes官方提供的命令行工具,作為與Kubernetes集群交互的主要接口,它通過調(diào)用Kubernetes API Server實現(xiàn)對集群資源的全面管理。在生產(chǎn)環(huán)境中,運維工程師需要熟練掌握kubectl命令來完成日常的集群運維、應(yīng)用部署、故障排查和性能優(yōu)化等工作。
    的頭像 發(fā)表于 02-02 16:40 ?625次閱讀

    PID控制的算法

    PID及其衍生算法是應(yīng)用最廣泛的算法之一,是當(dāng)之無愧的萬能算法,如果能夠熟練掌握PID算法的設(shè)計與實現(xiàn)過程,對于一般的研發(fā)人員來講,應(yīng)該是足
    發(fā)表于 01-23 08:18

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

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

    軟件加密中有哪些常用的加密算法?

    軟件加密中,有哪些常用的加密算法?
    發(fā)表于 12-26 06:00

    光纖線芯都是按照什么顏色排序

    多次有朋友留言問到,光纖熔接顏色如何排序,這個在實際應(yīng)用中還是比較多的,那么今天我們就不講原理了,直接用圖文簡單明了講光纖熔接色譜,大家可以了解下。 一、常規(guī)排序 1、4芯的排序:藍(lán)、橙、綠、棕
    的頭像 發(fā)表于 12-19 11:02 ?2338次閱讀

    CW32嵌入式軟件開發(fā)的必備知識

    嵌入式軟件開發(fā)作為計算機(jī)科學(xué)和電子工程的交叉領(lǐng)域,要求開發(fā)人員具備一系列的專業(yè)知識和技能。 而基于CW32的嵌入式軟件開發(fā)必備知識包括以下部分: 1 、編程語言 熟練掌握C(C++)語言,這是
    發(fā)表于 11-28 07:48

    C語言的常見算法

    # C語言常見算法 C語言中常用算法可以分為以下幾大類: ## 1. 排序算法 ### 冒泡排序
    發(fā)表于 11-24 08:29

    8種常用的CRC算法分享

    CRC 計算單元可按所選擇的算法和參數(shù)配置來生成數(shù)據(jù)流的 CRC 碼。有些應(yīng)用中,可利用 CRC 技術(shù)來驗證數(shù)據(jù)的傳輸和存儲的完整性。 8 種常用的 CRC 算法,包括: CRC16_IBM
    發(fā)表于 11-13 07:25

    高效管理Kubernetes集群的實用技巧

    作為一名經(jīng)驗豐富的運維工程師,我深知在日常的Kubernetes集群管理中,熟練掌握kubectl命令是提升工作效率的關(guān)鍵。今天,我將分享15個經(jīng)過實戰(zhàn)檢驗的kubectl實用技巧,幫助你像藝術(shù)家一樣優(yōu)雅地管理K8s集群。
    的頭像 發(fā)表于 08-13 15:57 ?1139次閱讀

    三大核心網(wǎng)絡(luò)設(shè)備的運維要點

    作為運維工程師,熟練掌握網(wǎng)絡(luò)設(shè)備的管理和維護(hù)是構(gòu)建穩(wěn)定IT基礎(chǔ)架構(gòu)的關(guān)鍵。本文將深入探討交換機(jī)、路由器和防火墻這三大核心網(wǎng)絡(luò)設(shè)備的運維要點,從基礎(chǔ)配置到高級故障排除,為您提供全面的技術(shù)指導(dǎo)。
    的頭像 發(fā)表于 07-22 16:35 ?1272次閱讀

    一文掌握Linux命令

    作為一名運維工程師,熟練掌握Linux命令是基本功中的基本功。無論是日常工作中的系統(tǒng)維護(hù),還是面試時的技術(shù)考核,Linux命令都是繞不開的核心技能。本文將從實戰(zhàn)角度出發(fā),系統(tǒng)梳理運維工程師必須掌握的Linux命令,并結(jié)合實際場景解析其應(yīng)用方法。
    的頭像 發(fā)表于 07-22 15:23 ?745次閱讀

    熟練掌握ModbusTCP轉(zhuǎn)PROFINET網(wǎng)關(guān)的互轉(zhuǎn)技術(shù)

    在現(xiàn)代工業(yè)生產(chǎn)中,自動化與信息化的深度融合成為提升效率、優(yōu)化流程的關(guān)鍵。在這一背景下,不同通信協(xié)議之間的兼容性與轉(zhuǎn)換能力顯得尤為重要,尤其是在廣泛應(yīng)用的Modbus TCP與新興且高效的Profinet之間。本文將深入探討Modbus TCP向Profinet轉(zhuǎn)換的過程、技術(shù)細(xì)節(jié)及其應(yīng)用價值,旨在為工業(yè)自動化領(lǐng)域的從業(yè)者提供一份實用的知識指南。 添加圖片注釋,不超過 140 字(可選) 二、Modbus TCP轉(zhuǎn)Profinet網(wǎng)關(guān)的重要性 鑒于Modbus TCP與Profinet各自在不同領(lǐng)域的優(yōu)勢
    的頭像 發(fā)表于 07-07 18:26 ?450次閱讀
    <b class='flag-5'>熟練掌握</b>ModbusTCP轉(zhuǎn)PROFINET網(wǎng)關(guān)的互轉(zhuǎn)技術(shù)

    單片機(jī)常用算法源碼下載!

    單片機(jī)常用算法源碼下載!
    發(fā)表于 06-10 20:44

    電機(jī)學(xué)教程

    電磁關(guān)系,熟練掌握各類電機(jī)的運行原理及其分析方法: (3)在以上分析的基礎(chǔ)上,掌握各種電機(jī)的工作特性、外特性、機(jī)械特性、調(diào)速特性和起動特性等; (4)根據(jù)以上所掌握的各種運行特性,熟知其運用場合,分析其
    發(fā)表于 05-12 14:50
    文登市| 阿尔山市| 万全县| 吴忠市| 蕉岭县| 钦州市| 梅河口市| 环江| 乌海市| 虹口区| 兴国县| 临猗县| 弥渡县| 嘉定区| 嘉义市| 社旗县| 收藏| 文登市| 云龙县| 盐山县| 霍邱县| 武冈市| 安国市| 衡南县| 渝北区| 楚雄市| 商南县| 黄龙县| 马公市| 凤台县| 浙江省| 西乌珠穆沁旗| 黔南| 沙雅县| 九寨沟县| 咸宁市| 平和县| 万山特区| 萍乡市| 家居| 广昌县|