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

     1 #include<iostream>
     2 #include<vector>
     3 #include <bitset>
     4 #include<algorithm>
     5 #include<map>
     6 #include<unordered_map>
     7 #include<string>
     8 #include<unordered_set>
     9 #include<set>
    10 using namespace std;
    11 
    12 void Heapfy(int a[], int idx, int max)//堆调整
    13 {
    14     int left = idx * 2 + 1;
    15     int right = left + 1;
    16     int largest = idx;
    17     if (left<max&&a[left]>a[largest])// 大于号是升序,小于号是降序
    18     {
    19         largest = left;
    20     }
    21     if (right < max&&a[right]>a[largest])// 大于号是升序,小于号是降序
    22     {
    23         largest = right;
    24     }
    25     if (largest != idx)
    26     {
    27         int temp = a[largest];
    28         a[largest] = a[idx];
    29         a[idx] = temp;
    30         Heapfy(a, largest, max);
    31     }
    32 }
    33 void buildHeap(int a[], int ll)
    34 {
    35     int len = ll;
    36     for (int i = len / 2 - 1; i >= 0; --i) //第一次,将数据调整为堆
    37     {
    38         Heapfy(a, i, len);
    39     }
    40     for (int i = len - 1; i >= 1; --i)   // 利用堆进行排序
    41     {
    42         int temp = a[0];
    43         a[0] = a[i];
    44         a[i] = temp;
    45         Heapfy(a, 0, i);
    46     }
    47 }
    48 int main()
    49 {
    50     int a[] = { 1, 5, 8, 6, 6, 48, 23, 0, 4, 0 };
    51     int n = sizeof(a) / sizeof(a[0]);
    52     cout << n << endl;
    53     for (int i = 0; i < n; i++)
    54     {
    55         cout << a[i] << " ";
    56     }
    57     cout << endl;
    58     buildHeap(a, n);
    59     for (int i = 0; i < n; i++)
    60     {
    61         cout << a[i] << " ";
    62     }
    63     cout << endl;
    64 
    65     system("pause");
    66     return 0;
    67 }
  • 相关阅读:
    [ Luogu 3398 ] 仓鼠找sugar
    [ JLOI 2014 ] 松鼠的新家
    AtcoderGrandContest 005 F. Many Easy Problems
    Codeforces 388 D. Fox and Perfect Sets
    Codeforces 1037 H. Security
    「学习笔记」wqs二分/dp凸优化
    「NOI2017」游戏
    「SCOI2014」方伯伯的商场之旅
    「SCOI2015」情报传递
    「SCOI2016」美味
  • 原文地址:https://www.cnblogs.com/wujufengyun/p/6830764.html
Copyright © 2011-2022 走看看