亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言數據結構之堆排序源代碼

2020-01-26 13:46:45
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言堆排序源代碼,供大家參考,具體內容如下

1. 堆排序

堆排序的定義及思想可以參考百度百科:

用一句概括,堆排序就是一種改進的選擇排序,改進的地方在于,每次做選擇的時候,不單單把最大的數字選擇出來,而且把排序過程中的一些操作進行了記錄,這樣在后續排序中可以利用,并且有分組的思想在里面,從而提高了排序效率,其效率為O(n*logn).

2. 源代碼

堆排序中有兩個核心的操作,一個是創建大頂堆(或者小頂堆,這里用的是大頂堆),再一個就是對堆進行調整。這里需要注意的是,并沒有真正的創建堆,只是利用完全二叉樹的特性,將其對應到數組的下標中(例如對于節點i,如果其存在左孩子和右孩子,那么其下標一定是2*i, 和2*i+1)其中創建的時候是從下向上創建,而調整則是從上向下調整。

這里為了方便,堆從a[1]位置開始。

代碼運行結果如下:


源代碼如下:

#include<stdio.h>  int c=0;  /*heapadjust()函數的功能是實現從a[m]到a[n]的數據進行調整,使其滿足大頂堆的特性*/ /*a[]是待處理的數組,m是起始坐標, n是終止坐標*/ void heapadjust(int a[], int m, int n) {   int i, temp;   temp=a[m];    for(i=2*m;i<=n;i*=2)//從m的左孩子開始   {     if(i+1<=n && a[i]<a[i+1])//如果左孩子小于右孩子,則將i++,這樣i的值就是最大孩子的下標值     {       i++;     }      if(a[i]<temp)//如果最大的孩子小于temp,則不做任何操作,退出循環;否則交換a[m]和a[i]的值,將最大值放到a[i]處     {       break;     }     a[m]=a[i];     m=i;   }   a[m]=temp; }  void crtheap(int a[], int n)//初始化創建一個大頂堆 {   int i;   for(i=n/2; i>0; i--)//n/2為最后一個雙親節點,依次向前建立大頂堆   {     heapadjust(a, i, n);   } }  /*swap()函數的作用是將a[i]和a[j]互換*/ void swap(int a[], int i, int j) {   int temp;   temp=a[i];   a[i]=a[j];   a[j]=temp;   c++; }  void heapsort(int a[], int n) {   int i;    crtheap(a, n);   for(i=n; i>1; i--)   {     swap(a, 1, i);//將第一個數,也就是從a[1]到a[i]中的最大的數,放到a[i]的位置     heapadjust(a, 1, i-1);//對剩下的a[1]到a[i],再次進行堆排序,選出最大的值,放到a[1]的位置   } }  int main(void) {   int i;   int a[10]={-1,5,2,6,0,3,9,1,7,4};   printf("排序前:");   for(i=1;i<10;i++)   {     printf("%d",a[i]);   }   heapsort(a, 9);   printf("/n/n共交換數據%d次/n/n", c);   printf("排序后:");   for(i=1;i<10;i++)   {     printf("%d",a[i]);   }   printf("/n/n/n");   return 0; } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品精品视频一区二区三区| 免费av一区二区| 亚洲午夜未删减在线观看| 亚洲男人的天堂网站| 国产亚洲aⅴaaaaaa毛片| 国产精品女视频| 91中文字幕一区| 欧美激情手机在线视频| 一区二区成人精品| 自拍偷拍亚洲一区| 欧美性xxxxx极品娇小| 亚洲欧美国产精品| 91视频8mav| 国精产品一区一区三区有限在线| 亚洲成人xxx| 国产精品久久久久久影视| 精品久久久精品| 欧洲中文字幕国产精品| 久久69精品久久久久久久电影好| 日韩精品一区二区三区第95| 亚洲欧洲日本专区| 日本亚洲欧洲色α| 国产成人一区三区| 国产精品久久久久久久久久新婚| 成人xxxx视频| 国产精品免费观看在线| 中文字幕av一区中文字幕天堂| 亚洲欧洲一区二区三区久久| 97在线看免费观看视频在线观看| 欧美国产中文字幕| 日韩av中文字幕在线| 日韩免费在线免费观看| 久久久天堂国产精品女人| 欧美风情在线观看| 91精品视频在线免费观看| 日韩精品视频三区| 欧美色另类天堂2015| 少妇精69xxtheporn| 亚洲欧美日韩爽爽影院| 2020欧美日韩在线视频| 亚洲成人av中文字幕| 欧洲亚洲女同hd| 91精品综合久久久久久五月天| 青青草精品毛片| 国产精品扒开腿做爽爽爽的视频| 91精品久久久久久久久青青| www欧美xxxx| 国产成人精品av| 97av视频在线| 国产精品美女呻吟| 欧美日韩第一视频| 久久久久久com| 国产精品一区二区久久久| 精品人伦一区二区三区蜜桃网站| 精品久久久国产精品999| 国产精品亚洲美女av网站| 国产亚洲精品久久久久久| 亚洲片在线资源| 精品欧美激情精品一区| 亚洲久久久久久久久久久| 久久天天躁狠狠躁夜夜爽蜜月| 色综合亚洲精品激情狠狠| 俺去亚洲欧洲欧美日韩| 国产精品偷伦视频免费观看国产| 日韩中文娱乐网| 国产日韩在线观看av| 久久久综合免费视频| 久久久久久久久久久免费精品| 人人澡人人澡人人看欧美| 欧美高清无遮挡| 午夜欧美大片免费观看| 亚洲人成网站免费播放| 国产精品色午夜在线观看| 亚洲女人天堂视频| 日韩av免费在线播放| 欧美黑人xxxx| 国自产精品手机在线观看视频| 国产免费亚洲高清| 伊人久久久久久久久久| 国产精品日日摸夜夜添夜夜av| 欧美日韩亚洲一区二区三区| 亚洲国产一区自拍| 国产精品久久久久国产a级| 欧美日韩国产精品一区二区三区四区| 成人乱色短篇合集| 久久视频免费观看| 国产91精品久| 热久久免费国产视频| 欧美色xxxx| 97超级碰碰碰久久久| 亚洲一区亚洲二区亚洲三区| 国产在线999| 亚洲专区国产精品| 欧美精品www| 欧洲美女7788成人免费视频| 亚洲精品中文字| 国产日韩综合一区二区性色av| 国产精品久久精品| 日韩精品在线播放| 久久亚洲精品小早川怜子66| 国产精品男人爽免费视频1| 亚洲精品www久久久久久广东| 日日狠狠久久偷偷四色综合免费| 在线看日韩av| 国产精品美乳在线观看| 日韩一区二区欧美| 日韩av男人的天堂| 91精品国产沙发| 亚洲国产欧美自拍| 国产一区二区av| 91深夜福利视频| 亚洲一区二区三区在线视频| 欧美俄罗斯性视频| 91社影院在线观看| 国产日韩精品综合网站| 欧美成人剧情片在线观看| 日韩欧美中文字幕在线播放| 狠狠躁18三区二区一区| 精品国模在线视频| 国产日韩欧美中文在线播放| 亚洲精品久久久久久下一站| 亚洲理论电影网| 日本在线精品视频| 亚洲一区二区三区四区视频| 91亚洲国产成人精品性色| 国产成人欧美在线观看| 久久精品99久久久久久久久| 4438全国亚洲精品在线观看视频| 久久激情五月丁香伊人| 日韩中文字幕在线观看| 日本高清不卡在线| 欧美视频免费在线观看| 久久精品小视频| 亚洲国产一区二区三区在线观看| 亚洲欧美日韩在线高清直播| 亚洲国产精品嫩草影院久久| 91精品久久久久久综合乱菊| 亚洲在线www| 久久久黄色av| 日韩精品免费在线| 精品国产美女在线| 日韩亚洲第一页| 国产成人av网址| 国产精品亚洲视频在线观看| 亚洲精品视频网上网址在线观看| 欧美视频在线观看免费网址| 国产精品99久久久久久白浆小说| 色偷偷偷综合中文字幕;dd| 亚洲一区二区久久久久久久| 国产精品免费久久久| 91久久久久久久久久久久久| 国产精品一区二区三| 久久99精品久久久久久青青91| 亚洲欧洲一区二区三区在线观看| 日韩av三级在线观看| 国产精品18久久久久久首页狼| 午夜精品一区二区三区在线视| 欧美亚洲免费电影| 成人黄色网免费| 欧美成人三级视频网站| 久热精品视频在线观看一区| 中文字幕日韩av综合精品| www.久久久久| 国产在线视频一区|