国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

上海app服務(wù)商北京seo薪資

上海app服務(wù)商,北京seo薪資,長沙網(wǎng)站列表,淘寶式網(wǎng)站建設(shè)堆排序(Heapsort)是一種在時間復(fù)雜度上達到了最優(yōu)的基于比較的排序算法。堆排序算法是指利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計的一種排序算法。堆積是一個近似完全二叉樹的結(jié)構(gòu),并同時滿足堆積的性質(zhì):即子節(jié)點的鍵值或索引總是小于&#xff0…

?

堆排序(Heapsort)是一種在時間復(fù)雜度上達到了最優(yōu)的基于比較的排序算法。堆排序算法是指利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計的一種排序算法。堆積是一個近似完全二叉樹的結(jié)構(gòu),并同時滿足堆積的性質(zhì):即子節(jié)點的鍵值或索引總是小于(或者大于)它的父節(jié)點。

堆排序的基本思想是:

  1. 首先將待排序的序列構(gòu)造成一個大頂堆(或小頂堆)。
  2. 此時,整個序列的最大值(或最小值)就是堆頂?shù)母?jié)點。
  3. 將其與末尾元素進行交換,此時末尾就為最大值(或最小值)。
  4. 然后將剩余n-1個元素重新構(gòu)造成一個堆,這樣會得到n個元素的次小值(或次大值)。
  5. 如此反復(fù)執(zhí)行,便能得到一個有序序列了。

堆排序的時間復(fù)雜度是O(n log n)。

#include <stdio.h>  // 將以k為根的子樹調(diào)整為最大堆  
void heapify(int arr[], int n, int k) {  int largest = k;  // 初始化根節(jié)點最大  int left = 2 * k + 1;  // 左子節(jié)點  int right = 2 * k + 2;  // 右子節(jié)點  // 如果左子節(jié)點比根節(jié)點大,則更新最大節(jié)點  if (left < n && arr[left] > arr[largest]) {  largest = left;  }  // 如果右子節(jié)點比最大節(jié)點大,則更新最大節(jié)點  if (right < n && arr[right] > arr[largest]) {  largest = right;  }  // 如果最大節(jié)點不是根節(jié)點,則交換根節(jié)點和最大節(jié)點,并繼續(xù)調(diào)整子樹  if (largest != k) {  int temp = arr[k];  arr[k] = arr[largest];  arr[largest] = temp;  heapify(arr, n, largest);  }  
}  // 堆排序函數(shù)  
void heapSort(int arr[], int n) {  // 構(gòu)建最大堆  for (int i = n / 2 - 1; i >= 0; i--) {  heapify(arr, n, i);  }  // 從堆頂開始取出元素,并重新調(diào)整堆  for (int i = n - 1; i >= 0; i--) {  int temp = arr[0];  arr[0] = arr[i];  arr[i] = temp;  heapify(arr, i, 0);  }  
}  int main() {  int arr[] = {10, 7, 8, 9, 1, 5};  int n = sizeof(arr) / sizeof(arr[0]);  printf("Original array: ");  for (int i = 0; i < n; i++) {  printf("%d ", arr[i]);  }  printf("\n");  heapSort(arr, n);  printf("Sorted array: ");  for (int i = 0; i < n; i++) {  printf("%d ", arr[i]);  }  printf("\n");  return 0;  
}

該代碼中,heapify函數(shù)將以k為根的子樹調(diào)整為最大堆,heapSort函數(shù)則先構(gòu)建最大堆,然后從堆頂開始取出元素并重新調(diào)整堆,最終得到排序后的數(shù)組。

http://aloenet.com.cn/news/45856.html

相關(guān)文章:

  • dota2max網(wǎng)站怎么做壁紙西安百度公司官網(wǎng)
  • 傳奇手游官網(wǎng)下載威海seo公司
  • 前端做項目的網(wǎng)站惠州網(wǎng)站排名提升
  • 松江做網(wǎng)站網(wǎng)站如何才能被百度收錄
  • 東莞企業(yè)網(wǎng)站seo站長工具seo綜合查詢收費嗎
  • 怎么網(wǎng)站愛用建站官網(wǎng)
  • 濟南做網(wǎng)站的公司哪家好重慶網(wǎng)站推廣
  • 商城網(wǎng)站開發(fā)合同seo是什么崗位的縮寫
  • 廣東省建站公司做網(wǎng)頁的網(wǎng)站
  • 昆明網(wǎng)站建設(shè)推薦seo關(guān)鍵詞推廣優(yōu)化
  • 58同城舊房翻新愛站seo工具包下載
  • 域名備案 沒有網(wǎng)站網(wǎng)址域名大全2345網(wǎng)址
  • 如何做醫(yī)療網(wǎng)站的專題頁關(guān)鍵詞seo教程
  • 分銷平臺網(wǎng)站建設(shè)桂林武漢搜索排名提升
  • 靜態(tài)網(wǎng)頁制作成品seo網(wǎng)絡(luò)優(yōu)化是什么意思
  • 長沙市做網(wǎng)站百度查關(guān)鍵詞顯示排名
  • 如何用織夢cms做網(wǎng)站江北seo綜合優(yōu)化外包
  • 免費咨詢在線醫(yī)生百度推廣seo自學(xué)
  • 免費開源的建站系統(tǒng)成免費crm軟件有哪些優(yōu)點
  • 制冷 網(wǎng)站建設(shè) 中企動力微指數(shù)官網(wǎng)
  • 做網(wǎng)站用源碼百度百科官網(wǎng)
  • 梅林 做服務(wù)器 網(wǎng)站seo掛機賺錢
  • 如何做醫(yī)療網(wǎng)站的專題頁網(wǎng)站營銷方案模板
  • 網(wǎng)站制作實例公司網(wǎng)站建設(shè)流程
  • 建網(wǎng)站需要什么設(shè)計專業(yè)注冊城鄉(xiāng)規(guī)劃師教材
  • 大連 做網(wǎng)站廣西壯族自治區(qū)
  • 網(wǎng)站開發(fā)b2b網(wǎng)上推廣平臺有哪些
  • dede換網(wǎng)站媒體平臺推廣
  • 做推廣賺錢的網(wǎng)站有哪些建網(wǎng)站費用
  • 做網(wǎng)站推廣哪家公司好百度風(fēng)云榜電視劇排行榜