zoukankan      html  css  js  c++  java
  • 堆排序-c++

     1 /*************************************************************************
     2     > File Name: HeapSort.cpp
     3     > Author: zhoukang
     4     > Mail: zhoukang199191@126.com 
     5     > Created Time: 2014年08月11日 星期一 22时36分38秒
     6  ************************************************************************/
     7 
     8 #include <iostream>
     9 #include <vector>
    10 #include <algorithm>
    11 using namespace std;
    12 
    13 void max_heapfy(vector<int> & A,int index,int heapsize)
    14 {
    15     int l = 2*index+1;
    16     int r = 2*index+2;
    17 
    18     int largest = index;
    19     if(l <= heapsize && A[l] > A[index])
    20         largest = l;
    21     if(r <= heapsize && A[r] > A[largest])
    22         largest = r;
    23     if(largest != index)
    24     {
    25         swap(A[index],A[largest]);
    26         max_heapfy(A,largest,heapsize);
    27     }
    28 }
    29 
    30 void build_max_heap(vector<int> &A,int heapsize)
    31 {
    32 //    assert(heapsize >= 0);
    33     int i;
    34     for(i = heapsize/2-1 ; i >= 0 ; --i)
    35         max_heapfy(A,i,heapsize);
    36 }
    37 
    38 void heap_sort(vector<int> &A,int heapsize)
    39 {
    40     build_max_heap(A,heapsize);
    41     int i;
    42     for(i = heapsize-1; i > 0 ; --i )
    43     {
    44         swap(A[0],A[i]);
    45         max_heapfy(A,0,i);
    46     }
    47 }
    48 
    49 int main()
    50 {
    51     cout<<"before"<<endl;
    52     vector<int> A;
    53     A.push_back(3);
    54     A.push_back(1);
    55     A.push_back(2);
    56     heap_sort(A,3);
    57 }
  • 相关阅读:
    【c语言】斐波那契数列
    【c语言】c语言中的问题--empty character constant
    【java 基础领域】类加载机制
    【书籍学习】汇编语言学习-第二章
    【专接本课程】c语言指针学习
    Balanced Binary Tree
    Symmetric Tree
    Same Tree
    Recover Binary Search Tree
    Binary Tree Zigzag Level Traversal
  • 原文地址:https://www.cnblogs.com/cane/p/3904274.html
Copyright © 2011-2022 走看看