java面试java后端开发岗面试中数据结构相关的常见问题

Posted 棉花糖灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面试java后端开发岗面试中数据结构相关的常见问题相关的知识,希望对你有一定的参考价值。

1. B树和B+树的区别

(1) B-树的特点

  • 所有关键字分布在整颗树节点中

  • 每个树节点存储索引和数据

  • 搜索有可能在非叶子结点结束,最好情况O(1)就能找到数据

(2) B+树的特点

  • 所有关键字都只在叶子节点出现

  • 内部节点不存储数据,仅起到索引作用

  • 为所有叶子结点增加了一个链指针,相邻叶节点按大小顺序链接起来

  • 查询时间复杂度固定为 O(log n)

  • B+树更适合外部存储。由于内节点无数据域,每个节点能索引的范围更大更精确

2. 排序算法

  • 插入排序
    • 直接插入排序
    • 折半插入排序
    • 希尔排序
  • 交换排序
    • 冒泡排序
    • 快速排序
  • 选择排序
    • 简单选择排序
    • 堆排序
  • 归并排序
  • 基数排序
排序法平均时间最差情形稳定度额外空间
冒泡排序O( n 2 n^2 n2)O( n 2 n^2 n2)稳定O(1)
选择排序O( n 2 n^2 n2)O( n 2 n^2 n2)不稳定O(1)
插入排序O( n 2 n^2 n2)O( n 2 n^2 n2)稳定O(1)
希尔排序O(nlogn)O(ns) 1<s<2不稳定O(1)
快速排序O(nlogn)O(n2)不稳定O(nlogn)
归并排序O(nlogn)O(nlogn)稳定O(1)
堆排序O(nlogn)O(nlogn)不稳定O(1)
基数排序O(logRB)O(logRB)稳定O(n)

以上是关于java面试java后端开发岗面试中数据结构相关的常见问题的主要内容,如果未能解决你的问题,请参考以下文章

java面试Java后端开发岗面试中计算机网络相关的常见问题

Java面试java后端开发岗面试中MySQL数据库相关的常见问题

java面试Java后端开发岗面试中操作系统相关的常见问题

[ Java面试题 ]Java 开发岗面试知识点解析

Java开发岗面试知识点解析

秋招已经开始准备了!Java面试题最新Java开发岗面试知识笔记