排序 选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 简单理解:每个元素都和它后面的元素比较,只要后面的元素比它大就交换 选择排序的最终代码 ...
面试题:一个有序数组,如果往该数组中存储一个元素,并保证这个数组还是有序的, 那么这个元素的存储的角标如何获取 若 key 插入到数组中的数,则使用折半查找比较后 min gt max时,min的值刚好比小于key的数的下标大 所以直接将之前返回的 改为返回 min ...
2018-12-18 14:49 0 687 推荐指数:
排序 选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 简单理解:每个元素都和它后面的元素比较,只要后面的元素比它大就交换 选择排序的最终代码 ...
1. 如何实现乐观锁(CAS)?如何避免ABA问题? 答:1)读取内存值的方式实现了乐观锁(比如:SVN系统),方法:第一,比较内存值和期望值;第二,替换内存值为要替换值。 2)带参数版 ...
第一题: 第二题: 第三题: ...
Java 中的各种锁和 CAS + 面试题 如果说快速理解多线程有什么捷径的话,那本文介绍的各种锁无疑是其中之一,它不但为我们开发多线程程序提供理论支持,还是面试中经常被问到的核心面试题之一。因此下面就让我们一起深入地学习一下这些锁吧。 乐观锁和悲观锁 悲观锁和乐观锁并不是某个具体的“锁 ...
什么是线程死锁?死锁如何产生?如何避免线程死锁? 死锁的介绍: 线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的syn ...
八大排序算法总结与java实现 一、直接插入排序(Insertion Sort) 插入排序的设计初衷是往有序的数组中快速插入一个新的元素。它的算法思想是:把要排序的数组分为了两个部分, 一部分是数组的全部元素(除去待插入的元素), 另一部分是待插入的元素; 先将第一部分排序完成 ...
面试题之排序总结 插入排序 分析: 插入排序就是通过数字插入有序数组的方式进行排序的, 代码简单, 且易理解。时间复杂度O(N*N) 代码如下: 冒泡排序 分析:冒泡排序多次遍历数组,每次遍历将当前位置与后面位置的数进行比较,大的放后面, 这样每次遍历最后一位数字必为整个数组中最 ...
十、Spring/Spring MVC 90.为什么要使用 spring? 1.方便解耦,便于开发(Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护都交给spring管理) 2.s ...