面试专题(基础篇)
创始人
2024-05-29 17:46:09
0次

这里写目录标题

  • 1.基础篇
    • 1.1 二分查找
    • 1.2 冒泡排序
    • 1.2 排序
    • 1.3 快速排序
    • 1.4 ArrayList&Iterator&LinkedList
    • 1.5 HashMap

1.基础篇

1.1 二分查找

查找算法:二分查找

1.2 冒泡排序

前提:二分查找要求线性表中的记录必须按关键码有序,并且必须采用顺序存储。

步骤:

  1. 确定边界:左边界索引L、右边界索引R
  2. 获取中间索引 M = Floor((L+R)/2)
  3. 将中间索引的值A[M]与待搜索的值T进行比较
    1.A[M] == T 表示找到,返回中间索引
    2.A[M] > T,中间值右侧的其它元素都大于 T,无需比较,中间索引左边去找,M - 1 设置为右边界,重新查找
    3.A[M] < T,中间值左侧的其它元素都小于 T,无需比较,中间索引右边去找, M + 1 设置为左边界,重新查找
  4. 当 L > R 时,表示没有找到,应结束循环

算法实现:在数组a中, 找到t所在的索引

public static int binarySearch(int[] a, int t) {// 定义左边界、右边界、中间索引int l = 0, r = a.length - 1, m;// 当左边边界和右边边界重叠时, 表示t不在数组中while (l <= r) {m = (l + r) / 2;if (a[m] == t) {// A[M] == T 表示找到,返回中间索引return m;} else if (a[m] > t) {// 中间值右侧的其它元素都大于t, 重新设置右边界r = m - 1;} else {// 中间值左侧的其它元素都大于t, 重新设置左边界l = m + 1;}}return -1;
}

1.2 排序

1.3 快速排序

1.4 ArrayList&Iterator&LinkedList

1.5 HashMap

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...