中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站入股云建站百度手機(jī)助手下載安卓

網(wǎng)站入股云建站,百度手機(jī)助手下載安卓,網(wǎng)頁(yè)單頁(yè)面設(shè)計(jì),哪些網(wǎng)站可以做推廣【八大經(jīng)典排序算法】堆排序 一、概述二、思路解讀三、代碼實(shí)現(xiàn)(大堆為例) 一、概述 堆排序是J.W.J. Williams于1964年提出的。他提出了一種利用堆的數(shù)據(jù)結(jié)構(gòu)進(jìn)行排序的算法,并將其稱為堆排序。堆排序是基于選擇排序的一種改進(jìn),通…

【八大經(jīng)典排序算法】堆排序

  • 一、概述
  • 二、思路解讀
  • 三、代碼實(shí)現(xiàn)(大堆為例)


一、概述

堆排序是J.W.J. Williams于1964年提出的。他提出了一種利用堆的數(shù)據(jù)結(jié)構(gòu)進(jìn)行排序的算法,并將其稱為堆排序。堆排序是基于選擇排序的一種改進(jìn),通過(guò)維護(hù)一個(gè)堆來(lái)選擇最大(或最小)的元素,并將其放置在數(shù)組的末尾,然后對(duì)剩余的元素進(jìn)行遞歸調(diào)用堆排序。

堆排序在其初期的版本中存在一些性能問(wèn)題,例如在構(gòu)建堆的過(guò)程中需要頻繁的調(diào)整堆的結(jié)構(gòu),導(dǎo)致性能的下降。為了改進(jìn)這個(gè)問(wèn)題,人們提出了一種稱為“堆調(diào)整”的操作,將調(diào)整堆的過(guò)程優(yōu)化為一次遍歷,從而提高了性能。此外,還有一些其他的改進(jìn)方法,如使用二叉堆來(lái)代替普通堆,使用自底向上的構(gòu)建堆的方法等。

堆排序作為一種經(jīng)典的排序算法,經(jīng)過(guò)多年的發(fā)展與改進(jìn),已經(jīng)成為一種高效穩(wěn)定的排序算法,并在實(shí)際應(yīng)用中得到廣泛的應(yīng)用。


二、思路解讀

我們知道堆排序是一種基于堆數(shù)據(jù)結(jié)構(gòu)的排序算法,所以堆排序分為以下幾步:

①:構(gòu)建大堆(或小堆)。這里我們從數(shù)組的最后一個(gè)數(shù)據(jù)的父節(jié)點(diǎn)開(kāi)始,采用向下調(diào)整算法來(lái)建堆。
向下調(diào)整算法有一個(gè)前提:左右子樹(shù)必須是一個(gè)堆,才能調(diào)整。同時(shí)還要注意是調(diào)大堆還是小堆。
調(diào)小(大)堆:堆頂元素和孩子中最小(大)的節(jié)點(diǎn)比較,如果父節(jié)點(diǎn)大于(小于)較小的子節(jié)點(diǎn)子,兩者交換。不斷向下調(diào)整到合適位置。(調(diào)大堆,和較大孩子比較)
在這里插入圖片描述

②:將堆中最大(或最小)的元素即堆頂元素與數(shù)組中最后一個(gè)元素交換位置,然后將堆的大小減1。將交換后的堆頂元素進(jìn)行向下調(diào)整,直到堆再次滿足堆性質(zhì)。
在這里插入圖片描述

③: 重復(fù)上述步驟,直到堆的大小為1,此時(shí)整個(gè)數(shù)組就有序了


三、代碼實(shí)現(xiàn)(大堆為例)

void AdjustDown(int* a, int n, int parent)
{//建大堆int child = parent * 2 + 1;while (child < n){if (child + 1 < n && a[child + 1] > a[child]){child++;}if (a[parent] < a[child]){Swap(&a[parent], &a[child]);parent = child;child = parent * 2 + 1;}else{break;}}
}//堆排序
void HeapSort(int* a, int n)
{//升序,建大堆for (int i = (n - 2) / 2; i >= 0; i--){AdjustDown(a, n, i);}int end = n - 1;while (end > 0){Swap(&a[0], &a[end]);AdjustDown(a, end, 0);end--;}
}

時(shí)間復(fù)雜度:O(N*logN)
空間復(fù)雜度:O(1)

在這里插入圖片描述
在這里插入圖片描述

http://www.risenshineclean.com/news/3800.html

相關(guān)文章:

  • 南海網(wǎng)站建設(shè)網(wǎng)站seo在線診斷
  • 建設(shè)手機(jī)網(wǎng)站包括哪些費(fèi)用怎么做百度推廣平臺(tái)
  • 廣州商城網(wǎng)站建設(shè)東莞關(guān)鍵詞自動(dòng)排名
  • 做我的狗哪個(gè)網(wǎng)站可以看廣州網(wǎng)站推廣排名
  • 網(wǎng)站開(kāi)發(fā)與應(yīng)用百度競(jìng)價(jià)培訓(xùn)班
  • 網(wǎng)站建設(shè)需求免費(fèi)html網(wǎng)頁(yè)模板
  • 天津在哪做網(wǎng)站西安seo網(wǎng)站排名
  • 中小企業(yè)發(fā)展淘寶seo關(guān)鍵詞的獲取方法有哪些
  • 怎么做阿里國(guó)際網(wǎng)站的數(shù)據(jù)分析重慶森林電影簡(jiǎn)介
  • 網(wǎng)站制作與建設(shè)書(shū)籍東莞有限公司seo
  • 學(xué)校做網(wǎng)站方案浙江企業(yè)seo推廣
  • 在線傳媒有限公司搜索引擎優(yōu)化的主要內(nèi)容
  • 枸杞網(wǎng)站建設(shè)方案seo外包
  • wordpress網(wǎng)站文件管理谷歌推廣代理商
  • 網(wǎng)頁(yè)游戲排行榜2023西安網(wǎng)站seo服務(wù)
  • 濟(jì)南企業(yè)建站品牌騰訊企點(diǎn)
  • wordpress 制作企業(yè)站長(zhǎng)春seo招聘
  • wordpress+嗨一下上首頁(yè)的seo關(guān)鍵詞優(yōu)化
  • dedecms做的網(wǎng)站_網(wǎng)站中的圖片總是被同一ip惡意點(diǎn)擊b2c有哪些電商平臺(tái)
  • 電商網(wǎng)站用什么做的網(wǎng)站關(guān)鍵詞排名查詢
  • 大連建設(shè)局網(wǎng)站上海百度推廣開(kāi)戶
  • 如何看網(wǎng)站的版本號(hào)現(xiàn)在疫情怎么樣了最新消息
  • 做網(wǎng)站底部不顯示中文怎么回事企業(yè)培訓(xùn)課程體系
  • 泉州專業(yè)做網(wǎng)站南寧網(wǎng)站優(yōu)化
  • 網(wǎng)頁(yè)制作免費(fèi)網(wǎng)站建設(shè)百度關(guān)鍵詞優(yōu)化推廣
  • 湖南網(wǎng)站建設(shè)seo優(yōu)化百度搜索排名靠前
  • 廣東煙草電子商務(wù)網(wǎng)站谷歌推廣網(wǎng)站
  • 最專業(yè)的網(wǎng)站建設(shè)收費(fèi)淘寶關(guān)鍵詞排名查詢工具
  • 網(wǎng)站開(kāi)發(fā)什么語(yǔ)言比較好廈門關(guān)鍵詞優(yōu)化企業(yè)
  • 開(kāi)源視頻網(wǎng)站谷歌三件套下載