chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

熟練掌握常用的排序算法

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

掃碼添加小助手

加入工程師交流群

1、前言

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

2、冒泡排序

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

示例:

poYBAGMAOruAL01VAAEBj1wgHog062.png

3、選擇排序

選擇排序(Selection sort)是一種簡(jiǎn)單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后,再?gòu)氖S辔磁判蛟刂欣^續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

示例:

pYYBAGMAOtKAddFZAADE9s8DT38780.png

4、插入排序

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

示例:

poYBAGMAOuSAMzv8AAB-sAsyGzI328.png

5、希爾排序

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

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

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

但插入排序一般來說是低效的,因?yàn)椴迦肱判蛎看沃荒軐?shù)據(jù)移動(dòng)一位

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

示例:

pYYBAGMAOvaAY8bDAACfNRPrx-0060.png

6、歸并排序

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

1、將劃分成兩個(gè)隊(duì)列直到不可再分為止

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

3、左隊(duì)列與右隊(duì)列合并

4、返回合并的隊(duì)列

示例:

poYBAGMAOxuAA4jjAAEh-jcUQj8079.png

7、快速排序

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

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

示例:

poYBAGMAO0CAHg1AAAEAiKJZq68115.pngpYYBAGMAO0aAErN_AABxdMH6wck722.png



審核編輯:劉清

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

    關(guān)注

    23

    文章

    4780

    瀏覽量

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

    關(guān)注

    1

    文章

    484

    瀏覽量

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

    關(guān)注

    0

    文章

    648

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Kubernetes kubectl命令行工具詳解

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

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

    MAX16050/MAX16051:具備反向排序功能的電壓監(jiān)控與排序電路 在電子系統(tǒng)設(shè)計(jì)中,對(duì)電源電壓的精確監(jiān)控和有序控制至關(guān)重要。Maxim Integrated推出的MAX16050
    的頭像 發(fā)表于 01-31 17:15 ?756次閱讀

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

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

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

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

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

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

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

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

    C語言的常見算法

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

    8種常用的CRC算法分享

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

    高效管理Kubernetes集群的實(shí)用技巧

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

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

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

    一文掌握Linux命令

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

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

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

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

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

    別忽視!TNC 插座正確拆卸關(guān)乎設(shè)備壽命

    正確拆卸 TNC 插座,看似微不足道,實(shí)則對(duì)設(shè)備的穩(wěn)定運(yùn)行及使用壽命影響重大。無論是專業(yè)技術(shù)人員,還是普通使用者,都應(yīng)熟練掌握正確拆卸方法,避免因操作不當(dāng)對(duì)設(shè)備造成損害,進(jìn)而降低設(shè)備維護(hù)成本,延長(zhǎng)設(shè)備使用壽命,確保通信與電子設(shè)備高效運(yùn)轉(zhuǎn)。
    的頭像 發(fā)表于 03-28 08:57 ?749次閱讀
    別忽視!TNC 插座正確拆卸關(guān)乎設(shè)備壽命

    PID控制算法的C語言實(shí)現(xiàn):PID算法原理

    在工業(yè)應(yīng)用中 PID 及其衍生算法是應(yīng)用最廣泛的算法之一,是當(dāng)之無愧的萬能算法,如果能夠熟練掌握 PID 算法的設(shè)計(jì)與實(shí)現(xiàn)過程,對(duì)于一般的研
    發(fā)表于 02-26 15:24