zoukankan      html  css  js  c++  java
  • 堆排序【模板】

     1 #include <algorithm>
     2 #include <cstdio>
     3 
     4 using namespace std;
     5 
     6 int x,size,n;
     7 int heap[1000005];
     8 
     9 void push(int x)
    10 {
    11     int now,next;
    12     heap[++size]=x;
    13     now=size;
    14     while(now>1)
    15     {
    16         next=now/2;
    17         if(heap[next]<=heap[now]) return ;
    18         swap(heap[next],heap[now]);
    19         now=next;
    20     }
    21 }
    22 
    23 int pop()
    24 {
    25     int now,next;
    26     int ret=heap[1];
    27     heap[1]=heap[size--];
    28     now=1;
    29     while(now*2<=size)
    30     {
    31         next=now*2;
    32         if(next<size&&heap[next]>heap[next+1]) next++;
    33         if(heap[now]<=heap[next]) return ret;
    34         swap(heap[now],heap[next]);
    35         now=next;
    36     }
    37     return ret;
    38 }
    39 
    40 int main()
    41 {
    42     scanf("%d",&n);
    43     for(int i=1;i<=n;i++)
    44     {
    45         scanf("%d",&x);
    46         push(x);
    47     }
    48     for(int i=1;i<n;i++) 
    49     {
    50         int ans=pop();
    51         printf("%d ",ans);
    52     }
    53     printf("%d
    ",pop());
    54     return 0;
    55 }
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    js正则匹配
    包含HTML的字符串去掉HTML标签
    smart-table 服务端请求真分
    禁用H5 表单验证novalidate
    webpack
    linux 进程查看及杀死进程
    配置ca服务器和http,mail加密
    mysql权限
    mysql查询
    mysql储存引擎
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6680806.html
Copyright © 2011-2022 走看看