女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

淺談希爾排序算法思想以及如何實(shí)現(xiàn)

Android編程精選 ? 來(lái)源:編程學(xué)習(xí)總站 ? 作者:寫(xiě)代碼的牛頓 ? 2021-06-30 10:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01

希爾排序算法思想

希爾排序也是一種插入排序,是簡(jiǎn)單插入排序改進(jìn)后的一個(gè)更高效版本,同時(shí)也是首批突破O(n^2)算法之一。

希爾排序算法思想:希爾排序是按照下標(biāo)增量進(jìn)行分組,對(duì)每組使用插入排序算法進(jìn)行排序,隨著增量減少,每組包含的關(guān)鍵字越來(lái)越多,增量減到1時(shí),整個(gè)序列被分為一組,算法終止。

我們以增序排序?yàn)槔?,希爾排序基本步驟:選擇初始增量gap = length / 2,縮小增量繼續(xù)以gap = gap / 2的方式進(jìn)行,直到增量gap = 1為止,增量的每次變化都會(huì)將原始序列劃分為若干組,分別對(duì)每一組進(jìn)行插入排序。

每一次通過(guò)增量劃分組進(jìn)行插入排序宏觀上小的數(shù)移到了前面,大的數(shù)移到了后面,最后增量gap = 1進(jìn)行插入排序后就是最終的有序序列。本文會(huì)以圖解的方式詳細(xì)介紹希爾排序算法的整個(gè)工作過(guò)程。

02

希爾排序算法實(shí)現(xiàn)

希爾排序完整源碼如下:

//插入排序 void insert_sort(int *arr, int length, int start, int gap){ if(arr == NULL || length 《= 0 || start 《 0 || gap 《= 0){ return; } int i = 0, j = 0; int value = 0; for(i = start; i 《 length - gap; i += gap){ value = arr[i + gap]; for(j = i; j 》= start; j -= gap){ if(value 《 arr[j]){ arr[j + gap] = arr[j]; }else{ break; } } arr[j + gap] = value; } } //希爾排序 void shell_sort(int *arr, int length){ if(arr == NULL || length 《= 0){ return; } int gap = 0, start = 0; int count = 0; for(gap = length / 2; gap 》 0; gap /= 2){ start = 0; for(count = 0; count 《 length / gap; count++){ insert_sort(arr, length, start, gap); start++; } } }

現(xiàn)在寫(xiě)一個(gè)小程序驗(yàn)證算法的正確性,代碼如下:

#include 《stdio.h》 #include “shell_sort.h” int main() { int i = 0; printf(“希爾排序結(jié)果 ”); int arr[7] = {8, 23, 64, 12, 0, 5, 6}; shell_sort(arr, 7); for(i = 0; i 《 7; i++){ printf(“%d ”, arr[i]); } printf(“ ”); return 0; }

編譯運(yùn)行輸出如下:

希爾排序結(jié)果 0 5 6 8 12 23 64

算法完全正確!

編輯:jq

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

    關(guān)注

    8

    文章

    671

    瀏覽量

    30328
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    679

    瀏覽量

    33983

原文標(biāo)題:數(shù)據(jù)結(jié)構(gòu)與算法篇-希爾排序

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于FPGA實(shí)現(xiàn)FOC算法之PWM模塊設(shè)計(jì)

    哈嘍,大家好,從今天開(kāi)始正式帶領(lǐng)大家從零到一,在FPGA平臺(tái)上實(shí)現(xiàn)FOC算法,整個(gè)算法的框架如下圖所示,如果大家對(duì)算法的原理不是特別清楚的話,可以先去百度上學(xué)習(xí)一下,本教程著重介紹
    的頭像 發(fā)表于 07-17 15:21 ?323次閱讀
    基于FPGA<b class='flag-5'>實(shí)現(xiàn)</b>FOC<b class='flag-5'>算法</b>之PWM模塊設(shè)計(jì)

    基于FPGA的壓縮算法加速實(shí)現(xiàn)

    本設(shè)計(jì)中,計(jì)劃實(shí)現(xiàn)對(duì)文件的壓縮及解壓,同時(shí)優(yōu)化壓縮中所涉及的信號(hào)處理和計(jì)算密集型功能,實(shí)現(xiàn)對(duì)其的加速處理。本設(shè)計(jì)的最終目標(biāo)是證明在充分并行化的硬件體系結(jié)構(gòu) FPGA 上實(shí)現(xiàn)算法時(shí),可
    的頭像 發(fā)表于 07-10 11:09 ?710次閱讀
    基于FPGA的壓縮<b class='flag-5'>算法</b>加速<b class='flag-5'>實(shí)現(xiàn)</b>

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

    絕大多數(shù)負(fù)載點(diǎn)DC-DC轉(zhuǎn)換器可以將上一個(gè)轉(zhuǎn)換器的電源就緒輸出連接至下一個(gè)轉(zhuǎn)換器的使能輸入,實(shí)現(xiàn)上電排序。這種方法只適合比較簡(jiǎn)單的設(shè)計(jì),不能滿足多數(shù)現(xiàn)代微處理器和DSP的要求一這類器件要求斷電順序必須與上電順序相反。許多廠商針對(duì)這類應(yīng)用推出了可編程
    的頭像 發(fā)表于 05-21 09:55 ?538次閱讀
    低成本電源<b class='flag-5'>排序</b>器解決方案

    完整版—單片機(jī)編程思想(推薦下載?。?/a>

    單片機(jī)的編程思想,希望能幫助大家寫(xiě)出簡(jiǎn)明的代碼 內(nèi)容簡(jiǎn)介 以單片機(jī)裸環(huán)境為基礎(chǔ),為編程者定義了一個(gè)微操作系統(tǒng)(MOS)的編程環(huán)境,并面向應(yīng)用中不斷提高的需求對(duì)編程策略進(jìn)行了深度剖析與研究,從而分離
    發(fā)表于 04-16 15:06

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

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

    DLPC7540EVM是否支持自定義的圖像處理算法以及如何進(jìn)行算法的移植?

    是否支持自定義的圖像處理算法以及如何進(jìn)行算法的移植?
    發(fā)表于 02-17 08:25

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

    在linux系統(tǒng)使用過(guò)程中,提供了sort排序命令,支持常用的排序功能。 常用參數(shù) sort命令支持很多參數(shù),常用參數(shù)如下: ? 短參數(shù) 長(zhǎng)參數(shù) 說(shuō)明 -n – number-sort 按字符串?dāng)?shù)值
    的頭像 發(fā)表于 01-09 10:10 ?930次閱讀

    TimSort:一個(gè)在標(biāo)準(zhǔn)函數(shù)庫(kù)中廣泛使用的排序算法

    成為其默認(rèn)排序算法。它的影響不止于此,Java、Android、GNU Octave、Chrome 的 V8 引擎、Swift 以及
    的頭像 發(fā)表于 01-03 11:42 ?577次閱讀

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡(jiǎn)介

    內(nèi)容簡(jiǎn)介這是一本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通算法研發(fā)到數(shù)字IC設(shè)計(jì)的實(shí)現(xiàn)屏障,以及指導(dǎo)芯片設(shè)計(jì)工程師從底層掌握復(fù)雜電路設(shè)計(jì)與優(yōu)化方法為目標(biāo)的專業(yè)技術(shù)書(shū)。任何芯片(如WiFi芯片
    發(fā)表于 11-21 17:14

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+介紹基礎(chǔ)硬件算法模塊

    作為嵌入式開(kāi)發(fā)者往往比較關(guān)注硬件和軟件的協(xié)調(diào)。本書(shū)介紹了除法器,信號(hào)發(fā)生器,濾波器,分頻器等基本算法的電路實(shí)現(xiàn),雖然都是基礎(chǔ)內(nèi)容,但是也是最常用到的基本模塊。 隨著逆全球化趨勢(shì)的出現(xiàn),過(guò)去的研發(fā)
    發(fā)表于 11-21 17:05

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+第九章sigma delta adc閱讀與分享

    思想幾行代碼實(shí)現(xiàn)降幀率算法。 https://mp.weixin.qq.com/s/9Vhe1rUCI8ZGBGGy3todcwPDM系列文章之二:一文搞懂PDM編碼基本原理1bit
    發(fā)表于 11-20 13:58

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+一本介紹基礎(chǔ)硬件算法模塊實(shí)現(xiàn)的好書(shū)

    ,少了再給多點(diǎn)”,本文微信公眾號(hào)”嵌入式Lee”中分享了一些列sigma delta思想相關(guān)的文章,比較使用sigma delta思想,幾行代碼就可以實(shí)現(xiàn)降幀率算法,感興趣可以關(guān)注公眾
    發(fā)表于 11-20 13:42

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

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

    名單公布!【書(shū)籍評(píng)測(cè)活動(dòng)NO.46】從算法到電路 | 數(shù)字芯片算法的電路實(shí)現(xiàn)

    :elecfans123)領(lǐng)取書(shū)籍進(jìn)行評(píng)測(cè),如在5個(gè)工作日內(nèi)未聯(lián)系,視為放棄本次試用評(píng)測(cè)資格! 《從算法到電路——數(shù)字芯片算法的電路實(shí)現(xiàn)》 是一本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通
    發(fā)表于 10-09 13:43

    C加密算法實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《C加密算法實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 09-20 11:10 ?1次下載
    C加密<b class='flag-5'>算法</b>的<b class='flag-5'>實(shí)現(xiàn)</b>