面试复习(C++)之堆排序
#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++)之堆排序的更多相关文章
- linux常用命令大全(linux基础命令入门到精通+命令备忘录+面试复习+实例)
作者:蓝藻(罗蓝国度) 创建时间:2018.7.3 编辑时间:2019.4.29 前言 本文特点 授之以渔:了解命令学习方法.用途:不再死记硬背,拒绝漫无目的: 准确无误:所有命令执行通过(环境为ce ...
- linux常用命令大全(linux基础命令+命令备忘录+面试复习)
linux常用命令大全(linux基础命令+命令备忘录+面试复习)-----https://www.cnblogs.com/caozy/p/9261224.html
- Java秋招面试复习大纲(二):Spring全家桶+MyBatis+MongDB+微服务
前言 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容. 这里说「天方夜谭」 ...
- [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...
- [Java面试一]面试复习大纲.
一.Java基础部分 (搞定所有技术之后才考虑复习的技术点) 1.数组中的排序问题(笔试或者机试,前者可能性更大) 2.面向对象的理解 3.集合相关的问题,比如hashmap跟hashtable的区别 ...
- Web前端年后跳槽面试复习指南
<pliga' 1,="" 'onum'="" 'kern'="" 1;="" margin:="&qu ...
- 【干货满满】1.5w字初中级前端面试复习总结
前言 金九银十,又是一波跑路.趁着有空把前端基础和面试相关的知识点都系统的学习一遍,参考一些权威的书籍和优秀的文章,最后加上自己的一些理解,总结出来这篇文章.适合复习和准备面试的同学,其中的知识点包括 ...
- Java基础(面试复习整理)
基础知识和语法 Java语言初识 计算机语言发展 机器语言.汇编.C.C++.Java Java的诞生与发展 1995 JavaSE JavaME Android JavaEE 2006(大数据) H ...
- PHP面试-复习知识点整理
false的七种情况 整型0 浮点0.0 布尔false 空字符串'',"" 字符串'0' 空数组[] NULL 超全局数组 $GLOBALS,包含下面8个超全局数组的值 $_GE ...
随机推荐
- Vi指令,随时追加
1.设置tab键的空格数 :set tabstop=4 2.显示行号 :set nu
- 使用VC++ ATL实现iStylePDF的COM插件
本文介绍了一种使用VC++ ATL(Active Template Library),利用ISPExtensibility接口,为 iStylePDF 加入功能简单的COM插件(addin),加入工具 ...
- Java学习--内部类(一)
Java学习--内部类(一) 一. 内部类的定义和特点 class Outer{ privite int num = 5; class Inner{ public void Display(){ Sy ...
- mybatis动态切换数据源
(#)背景:由于业务的需求,导致需要随时切换15个数据源,此时不能low逼的去写十几个mapper,所以想到了实现一个数据源的动态切换 首先要想重写多数据源,那么你应该理解数据源的一个概念是什么,Da ...
- iOS开发 获取状态栏的点击事件
首先我们追踪UIStatusBar的触摸事件,需要在AppDelegate里面加入以下代码 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEve ...
- 前台jquery+ajax+json传值,后台处理完后返回json字符串,如何取里面的属性值?(不用springmvc注解)
一.取属性值 前台页面: function select(id){ alert("hfdfhdfh"+id); $.ajax({ url:"selectByid.jsp& ...
- 网易云音乐PC端刷曲快捷键
文章首发于szhshp的第三边境研究所(szhshp.org), 转载请注明 网易云音乐PC端刷曲快捷键 好吧我承认我特别懒 云音乐其实做的还不错,FM推荐的算法明显比虾米好. 虾米可以听的曲子都 ...
- 初识SSH框架
想了解SSH的工作原理吗?还不快快来看我的新文章----ssh框架的工作原理 也许你还不知道SSH存在的意义,但只是因为在没点开这篇文章之前的事了. SSH由Strut2,Spring,Hiberna ...
- django学习记录--第一个网页“hello django”
一.安装django 下面两种方法任选其一 1.pip或easy_install 安装 pip install django easy_install django 2.到django官网(https ...
- PageRank理论与实践及用户评分应用PeopleRank算法
PageRank,网页排名,又称网页级别.Google左侧排名或佩奇排名,是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一. Google用它来体现网页的相关性和重要性,在搜索引擎 ...