#include <iostream>

using namespace std;

void Maxheap(int *a,int i,int heapSize)//最大数调整
{
int left=i*+;//i的左节点
int right=i*+;
int largest;//中间变量 if(left<heapSize&&a[left]>a[i])
{
largest=left;
}
else
{
largest=i;
}
if(right<heapSize&&a[right]>a[largest])
{
largest=right;
}
if(largest!=i)
{
swap(a[i],a[largest]);
Maxheap(a,largest,heapSize);
}
} void Maxheapbuild(int *a,int n)//最大数建造
{
for(int i=n/-;i>=;i--)
{
Maxheap(a,i,n-);
}
} void Heapsort(int *a,int n)//堆排序
{
Maxheapbuild(a,n);
for(int i=n-;i>;i--)
{
swap(a[],a[i]);
Maxheap(a,,i);
}
} int main()
{
int n=;
int a[];
cout<<"Input Num"<<endl;
for(int i=;i<n;i++)
{
cin>>a[i];
}
Heapsort(a,n);
for(int j=;j<n;j++)
{
cout<<a[j]<<" ";
}
return ;
}

面试复习(C++)之堆排序的更多相关文章

  1. linux常用命令大全(linux基础命令入门到精通+命令备忘录+面试复习+实例)

    作者:蓝藻(罗蓝国度) 创建时间:2018.7.3 编辑时间:2019.4.29 前言 本文特点 授之以渔:了解命令学习方法.用途:不再死记硬背,拒绝漫无目的: 准确无误:所有命令执行通过(环境为ce ...

  2. linux常用命令大全(linux基础命令+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令+命令备忘录+面试复习)-----https://www.cnblogs.com/caozy/p/9261224.html

  3. Java秋招面试复习大纲(二):Spring全家桶+MyBatis+MongDB+微服务

    前言 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容. 这里说「天方夜谭」 ...

  4. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  5. [Java面试一]面试复习大纲.

    一.Java基础部分 (搞定所有技术之后才考虑复习的技术点) 1.数组中的排序问题(笔试或者机试,前者可能性更大) 2.面向对象的理解 3.集合相关的问题,比如hashmap跟hashtable的区别 ...

  6. Web前端年后跳槽面试复习指南

    <pliga' 1,="" 'onum'="" 'kern'="" 1;="" margin:="&qu ...

  7. 【干货满满】1.5w字初中级前端面试复习总结

    前言 金九银十,又是一波跑路.趁着有空把前端基础和面试相关的知识点都系统的学习一遍,参考一些权威的书籍和优秀的文章,最后加上自己的一些理解,总结出来这篇文章.适合复习和准备面试的同学,其中的知识点包括 ...

  8. Java基础(面试复习整理)

    基础知识和语法 Java语言初识 计算机语言发展 机器语言.汇编.C.C++.Java Java的诞生与发展 1995 JavaSE JavaME Android JavaEE 2006(大数据) H ...

  9. PHP面试-复习知识点整理

    false的七种情况 整型0 浮点0.0 布尔false 空字符串'',"" 字符串'0' 空数组[] NULL 超全局数组 $GLOBALS,包含下面8个超全局数组的值 $_GE ...

随机推荐

  1. Q

  2. RabbitMQ 基础概念

    Broker:消息协商器.消息队列的实体,它在TCP/IP等端口上监听AMQ消息 vHost:虚拟主机.功能上类似于web的虚拟主机,都是把数据按照功能或项目的不同划分为不同的虚拟主机:用户只被授予访 ...

  3. WCF入门简单教程(图文) VS2010版

    在这个例子中我们将使用VS 2010 创建一个WCF服务,其中会了解 [DataContract] [ServiceContract] 等特性.  内置的 WCFSVCHost ,并使用“WCF测试客 ...

  4. c++第一天

    今天完成的事情: [主线] 1.熟悉cpp文件的编译运行 2.初步认识输入输出 值得关注的地方是: 流的概念.endl除了结束当前行外,还有刷新缓冲区的功能.以及对 输入输出运算符(<< ...

  5. session,ajax 跨域cookie

    什么是Session, 什么是Cookie? Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID为标识符来 ...

  6. 物理Data Guard的日常维护

    关闭顺序 1. 首先关闭primary数据库 [oracle@Master admin]$ sqlplus / as sysdba SQL> shutdown immediate 2. 关闭st ...

  7. A*算法 -- 八数码问题和传教士过河问题的代码实现

    前段时间人工智能的课介绍到A*算法,于是便去了解了一下,然后试着用这个算法去解决经典的八数码问题,一开始写用了挺久时间的,后来试着把算法的框架抽离出来,编写成一个通用的算法模板,这样子如果以后需要用到 ...

  8. Docker容器是否可以改变世界?

    Docker容器是否可以改变世界? 2016-01-15 杜亦舒 2016年了,很多大牛开始预测技术趋势,其中一个普遍的观点我也很认同: Docker会更加流行,会改变程序世界 2015年的上半年我接 ...

  9. android持久化技术

    Android系统提供了3种持久化技术,所谓持久化技术是指将内存中的书籍保存在存储设备中. 1.文件存储 2.sharedPreference存储 3.数据库存储 除此之外,还可以将数据保存在SD卡中

  10. CSS3中的伪类选择器详解

      类选择器和伪类选择器区别 类选择器我们可以随意起名,而伪类选择器是CSS中已经定义好的选择器,不可以随意起名. 伪类选择器以及伪元素 我们把它放到这里 p.aaas{ text-align: le ...