青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 13  文章 - 36  trackbacks - 0
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

常用鏈接

留言簿(2)

隨筆檔案

友情鏈接

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

                                                                      堆排序算法

                                                                                                               ---------- C++博客 Alex-Lee   2009-10-15

      (二叉)堆結構是一種數組對象,它可以被視為一顆完全二叉樹。算法時間復雜度O(nlgn),具有插入排序和合并排序的優點。堆結構滿足堆性質:對除根以外的每個節點i,滿足A[PARENT(i)] >= A[i]。
   
       堆排序算法實現有三個部分完成:
1,保持堆性質函數heap_ify;
2,構建堆函數build_heap;
3,堆排序函數 heap_sort;
另外,在優先級隊列中有extract-max 過程和insert過程,在作業隊列中常用,比如消息隊列。這部分在優先級排序中說明。

實現:
1,數據元素結構(使用int作為實現版本)
typedef struct int_array
{
 int *pa;
 int array_size;
} INT_ARRAY;

2,swap
void swap(int *pa,int *pb)
{
 int tmp;
 tmp = *pa;
 *pa = *pb;
 *pb = tmp;
}

3, tree child define
//結點標識從0開始算,算其左右孩子結點宏
#define LEFT(i)  2*i +1
#define RIGHT(i) 2*i +2

4,heap_ify
//使得以i給根結點的樹滿足堆特性a[i]>=a[child(i)]
static void heap_ify(INT_ARRAY *pia,int heap_size,int i)
{
 int left,right,largest;

 left = LEFT(i);
 right = RIGHT(i);

 //找出i結點與其左右孩子結點的值的最大者
 if (left <= heap_size && pia->pa[left] > pia->pa[i])
 {
  largest = left;
 }
 else
 {
  largest = i;
 }
 if (right <= heap_size && pia->pa[right] > pia->pa[largest])
 {
  largest = right;
 }

 if (largest != i)
 {//如果i結點值比子結點值小,那么與孩子結點最大值交換
  swap(&pia->pa[i],&pia->pa[largest]);
  //保證交換數據后的子樹還能滿足堆特性
  heap_ify(pia,heap_size,largest);
 }
}
5,build_heap

//創建堆后,整個樹滿足a[parent(i)]>=a[i];
static void build_heap(INT_ARRAY *pia)
{
 int i;
 for (i = pia->array_size/2;i >= 0 ;--i)
 {
  heap_ify(pia,pia->array_size,i);
 }
}
6,heap_sort
//首先創建堆,由于a[0]總是保存最大樹,
//將a[0]置換到a[n-i],這樣完成升序排序。
void heap_sort(INT_ARRAY *pia)
{
 int i,heap_size;
 heap_size = pia->array_size -1;
 build_heap(pia);
 //print_sort(pa,len,"after build heap");
 for (i = pia->array_size -1; i > 0;--i)
 {
  swap(&pia->pa[0],&pia->pa[i]);
  heap_size --;
  heap_ify(pia,heap_size,0);
 }
}

代碼:heap-sort算法代碼
堆排序算法效率還是不錯的,雖然可能比不上快速排序,今天測試了2次,1千萬整數排序不超過20秒。

                                                                                 

posted on 2009-10-15 21:01 Alex-Lee 閱讀(1697) 評論(1)  編輯 收藏 引用

FeedBack:
# re: 堆排序算法 2009-10-17 11:47 egmkang
我試過自己寫快排,1000W int32,需要6秒時間.  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              久久国产婷婷国产香蕉| 久久裸体艺术| 国产亚洲成av人在线观看导航| 午夜精品久久久久影视 | 欧美肥婆在线| 99视频+国产日韩欧美| 夜夜精品视频| 国产欧美一区二区精品仙草咪| 久久精品人人做人人爽| 久久婷婷国产麻豆91天堂| 亚洲片区在线| 日韩午夜一区| 国产区欧美区日韩区| 蜜臀av一级做a爰片久久| 鲁鲁狠狠狠7777一区二区| 99视频精品全部免费在线| 一区二区三区四区国产| 国产一区二区三区成人欧美日韩在线观看 | 一本色道久久88综合亚洲精品ⅰ| 亚洲视频免费观看| 国产主播一区二区| 亚洲国产天堂久久综合| 欧美激情成人在线| 欧美一区二区三区免费视频| 久久久亚洲成人| 一本色道久久88综合日韩精品| 亚洲一区二区在线播放| 在线成人免费观看| 日韩一级精品| 激情欧美一区二区三区| 亚洲精品日韩在线观看| 国产日韩欧美一区在线 | 亚洲一区欧美二区| 亚洲大胆人体在线| 一区二区三区免费看| 影音先锋日韩资源| 夜夜嗨av色一区二区不卡| 国外成人在线视频| 一本久久综合| 在线观看亚洲视频| 一区二区三区欧美日韩| 影音先锋亚洲视频| 亚洲先锋成人| 亚洲精品欧洲| 久久成人一区二区| 一区二区三区www| 久久久福利视频| 亚洲一区二区三区精品在线| 久久免费99精品久久久久久| 亚洲综合色丁香婷婷六月图片| 久久国产色av| 亚洲欧美精品在线| 欧美刺激性大交免费视频| 欧美专区在线播放| 欧美另类变人与禽xxxxx| 久久偷窥视频| 国产精品福利片| 亚洲国产高清aⅴ视频| 国内精品视频久久| 一区二区高清在线观看| 亚洲欧洲视频| 久久精品国产一区二区电影| 亚洲女性裸体视频| 欧美久久久久| 免费看亚洲片| 国产精品久久久免费| 亚洲激情中文1区| 一区在线观看| 亚洲欧美在线磁力| 亚洲一区二区欧美日韩| 欧美激情1区2区3区| 久色婷婷小香蕉久久| 国产精品亚洲а∨天堂免在线| 亚洲美女av在线播放| 亚洲国产精品成人综合色在线婷婷| 亚洲影院色在线观看免费| 91久久精品www人人做人人爽| 欧美在线观看视频一区二区三区| 亚洲欧美欧美一区二区三区| 欧美裸体一区二区三区| 亚洲二区三区四区| 亚洲电影下载| 久久久99爱| 久久久精品午夜少妇| 国产精品五月天| 中国日韩欧美久久久久久久久| 一本色道久久加勒比精品| 欧美成人免费在线观看| 另类尿喷潮videofree| 国产日产高清欧美一区二区三区| 亚洲午夜国产成人av电影男同| 亚洲视频www| 欧美日韩国产精品一区| 亚洲欧洲日本专区| 亚洲乱码久久| 欧美成年视频| 欧美护士18xxxxhd| 亚洲国产成人tv| 久久视频在线看| 免费欧美日韩| 亚洲国产电影| 美国成人直播| 欧美激情精品久久久久久大尺度| 永久久久久久| 久久久久国产精品人| 久久国产88| 国产综合色精品一区二区三区| 亚洲欧美经典视频| 久久国产成人| 好吊妞这里只有精品| 久久爱另类一区二区小说| 久久久国产一区二区| 韩国成人理伦片免费播放| 久久精品午夜| 欧美国产高潮xxxx1819| 亚洲精品国产欧美| 欧美欧美天天天天操| 夜夜精品视频一区二区| 午夜精品久久久久久| 国产一区二区精品丝袜| 久久精品av麻豆的观看方式| 老牛国产精品一区的观看方式| 国产综合网站| 久热这里只精品99re8久| 亚洲国产午夜| 亚洲图中文字幕| 国产精品一区久久久久| 久久成人免费电影| 欧美激情亚洲视频| 中文亚洲免费| 国产精品亚洲第一区在线暖暖韩国| 亚欧成人在线| 欧美 日韩 国产一区二区在线视频 | 久久久天天操| 亚洲高清激情| 亚洲小视频在线观看| 国产精品一区一区三区| 久久九九精品| 亚洲激情电影中文字幕| 亚洲一区中文字幕在线观看| 国产婷婷色综合av蜜臀av| 久久久久久色| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲少妇在线| 国产一区二区毛片| 久久综合九色欧美综合狠狠| 亚洲欧洲一级| 性欧美xxxx大乳国产app| 伊人久久综合| 欧美日韩精品欧美日韩精品 | 香港久久久电影| 在线欧美福利| 欧美三区美女| 久久精品女人的天堂av| 亚洲国产成人av| 亚洲综合日本| 激情成人在线视频| 欧美国产日韩视频| 午夜精品剧场| 亚洲精品1234| 久久aⅴ国产欧美74aaa| 亚洲人成欧美中文字幕| 欧美视频在线观看| 久久精品色图| 日韩一区二区精品葵司在线| 久久久福利视频| 亚洲精品无人区| 国产精品系列在线播放| 美女亚洲精品| 亚洲欧美成人一区二区三区| 久久免费国产精品1| 一本一道久久综合狠狠老精东影业 | 欧美理论片在线观看| 中文精品一区二区三区| 猛男gaygay欧美视频| 亚洲视频综合| 在线看视频不卡| 国产精品青草久久| 欧美大片一区二区| 欧美综合激情网| 99视频精品全国免费| 欧美va日韩va| 欧美在线观看视频一区二区三区| 亚洲精品一区二区三| 国产日韩欧美一区二区三区在线观看 | 亚洲精品久久久久久一区二区| 久久精品理论片| 在线视频欧美一区| 在线观看一区二区视频| 国产精品亚洲激情| 欧美日韩一区视频| 免费一级欧美片在线观看| 欧美亚洲午夜视频在线观看| 亚洲精品一区二区三区婷婷月| 免费亚洲一区| 久久精品国产一区二区三区免费看| 亚洲视频碰碰| 亚洲精品久久嫩草网站秘色 | 最新日韩在线| 免费国产自线拍一欧美视频|