前言:字节是真的很看重算法的企业,如果你算法基础不好,想要进字节不许的加强训练

1.先概述一下堆排序的思想,然后实现一下堆排序。
  • 堆排序是一个令人容易忘记的排序,你可能会对快排的partition记忆深刻,但是要你写出堆排序的代码还是得记忆一下关键点。
  • 1.初始化堆(将数组结构调整为堆大的要求),2.堆顶和数组末尾进行对调。3.继续初始化堆。4.重复直到数组有序。
  • 时间复杂度为:nlog(n),空间复杂度为o(1).
  • 思路总结:初始化的时候,需要从最末尾的一个非叶子节点从上进行堆化,堆化的核心是要求以该节点为根节点的子树满足堆的要求,首尾交换之后-需要从根节点开始向下进行堆化。
  • 代码:
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;class Main{public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {int []nums=new int[]{3,43,23,23,40,23,234,-234,0,0,0,213,231,8,9,0,6,5,3,2,2,4,5,6};HeapSort(nums);System.out.println(Arrays.toString(nums));}public static void HeapSort(int nums[]){int len = nums.length;//1.先进行初始化堆initHeapSort(nums,len);// 每次进行将堆顶和末尾进行交换for(int i = len-1;i>=0;i--){//首末进行交换swap(nums,0,i);len--;//从根位置进行堆调整heapfing(nums,0,len);}}public static void initHeapSort(int nums[],int len){//初始化应该从非叶子节点向上进行初始化for(int i = len/2-1;i>=0;i--){heapfing(nums,i,len);}}// 对i节点为根的子树进行判断是否满足堆的性质,从根往下进行调整public static void heapfing(int nums[],int i,int len){// 进行堆调整int left = i*2;int right = i*2 +1;int MaxIndex = i;if(left<len&&nums[left]>nums[MaxIndex]){MaxIndex = left;}if(right<len&&nums[right]>nums[MaxIndex]){MaxIndex = right;}//判断是否要进行交换if(i!=MaxIndex){swap(nums,i,MaxIndex);//对交换之后的子树进行判断是否满足堆的性质heapfing(nums,MaxIndex,len);}}public static void swap(int []nums,int i,int j){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}
}
2.Mysql中delete操作的过程
  • 个人感觉和update操作一样。
3.Redis中哨兵?
  • 回答的不是很好。
4.Http协议的报文结构
  • 这个作为后端开发工程师应该不陌生。
5.Linux中是如何跟根据文件序号找到文件的?
6.Linux中国select、eqoll、qoll的区别和联系
7.总结
  • 面试需要尽可能体现你会的东西,要有项目可以讲,要是面试官没有项目点可以问,他就会问语言、计算机基础,不要慌。

最新字节跳动面试题之堆排序相关推荐

  1. 最新字节跳动面试题与岗位层级,绩效考核制度介绍

    最新字节跳动面试题与岗位层级,绩效考核制度介绍 1.算法题一:无序数组的中位数 (快排思想O(N) 时间复杂度) 2.算法题二:给一数组,让你找一对满足i 3.算法题三: 给一数组,让你找一对满足i& ...

  2. 最新字节跳动面试题与答案: 无序数组的中位数 (快排思想O(N) 时间复杂度)

    最新字节跳动面试题与答案 1.算法题一:无序数组的中位数 (快排思想O(N) 时间复杂度) package com.lightsword.leetcodeproblemsimport org.juni ...

  3. 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取

    牛客网--字节跳动面试题--特征提取 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 来源 链接:特征提取 来源:牛客网 题目 ...

  4. 编程实践系列: 字节跳动面试题

    字节跳动面试题 面试3轮技术面+1轮HR 整体分三大块: 项目经验 计算机基础 编程题(每轮一题) 项目经验 架构+业务 做了什么核心设计优化 解决了什么难题 体现思考 业务理解 架构设计能力 项目需 ...

  5. 牛客网--字节跳动面试题--雀魂启动

    牛客网--字节跳动面试题--雀魂启动 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 来源 链接:雀魂启动 来源:牛客网 题目 ...

  6. 2018 java 字节跳动笔试题

    想进字节跳动同学注意了,这里是修真院面试笔记整理,那么这里就给大家分享一下 [2018 java 字节跳动笔试题] 一面 实现算法:求全排列. 输入:一个整数n 输出:从1至n所有数字组成的全排列 简 ...

  7. 【字节跳动面试题】赛马问题 64匹马8个跑道最少几次赛出最快的4匹马

    2020年1月 字节跳动研发岗实习面试题 文章目录 赛马问题 一. 64匹马8个跑道 二. 36匹马6赛道 赛马问题 一. 64匹马8个跑道 64匹马8个跑道(不计时),问最少要比多少次,才能知道最快 ...

  8. 2020年字节跳动面试题

    字节跳动一面面试题: 自我介绍 聊聊项目,时间大概15种左右,面试官会根据项目的一些设计点来提问,提前做好准备,别自己坑了自己 分布式锁是锁住一部分还是整个系统,既然是锁住整个,为什么不用消息队列? ...

  9. 2021年最新字节跳动Android面试真题解析

    这里概括一下给同伴们的几个小建议: 1.把自身的技能练扎实, 2.找跟你过往经历匹配度非常高的岗位, 3.面试的时候充分展现你个人的软实力硬实力. 关于内推的(同公司应该是hr伙伴的良心建议): 1. ...

  10. 2021大厂字节跳动笔试题(含答案)

    2021字节跳动web工程师笔试题 第一题 [ {num: 12, city: 'beijing'}, {num: 56, city: 'shanghai'}, {num: 167, city: 'g ...

最新文章

  1. Windows下利用TortoiseSVN搭建本地SVN服务器
  2. Angular 8.0.0-beta.5 发布,Web 前端框架
  3. UNIX环境高级编程第二版_扫描 版笔记
  4. 寒假每日一题(提高组)【Week 4 完结】
  5. Apache-tomcat
  6. C++ vector容器类型 (摘自漫步云端的博客)
  7. 关于工厂模式---转发
  8. Hadoop Ecosystem解决方案---数据仓库
  9. 各种initcall的执行先后顺序(module_init、postcore_initcall、arch_initcall、subsys_initcall、 fs_initcall)【转】...
  10. php获取xml中的数据格式_php-从xml文件获取数据
  11. IOS开发常用插件(二)
  12. 员工管理的html页面,员工管理.html
  13. war包还原成项目_war包反编译成整个java项目
  14. vs2005启动不了,手把手教你修复它
  15. Tracepro中up vector和normal vector的定义2
  16. 大流量高并发互联网应用实践在线峰会:资料汇总(更新ing~)
  17. 如何系统地学习linux
  18. Impala入门操作
  19. 电商网站的mongodb设计
  20. 网络创业者莱恩-福克斯:最后一分钟的奇迹

热门文章

  1. [MySQL]ERROR 1822 : Failed to add the foreign key constraint. Missing index for
  2. matlab如何设全局变量,请问MATLAB中如何修改全局变量
  3. 如何优雅的在微信小程序使用 SVG 字体图标
  4. Hexo博客搭建之Next主题的安装与设置
  5. nova虚拟机迁移一
  6. 抖音大数据,教你爬爬爬!
  7. 5年迭代5次,抖音推荐系统演进历程
  8. 经典简约风格教师求职简历免费word模板
  9. 计算机硕士工资一览表 08年各大IT公司薪水行
  10. 数据同步工具ETL-kettle使用