2024年java基础面试题 csdn

java基础面试题 csdn1 说一下什么是二分法 使用二分法时需要注意什么 如何用代码实现 二分法查找 Binary Search 也称折半查找 是指当每次查询时 将数据分为前后两部分 再用中值和待搜索的值进行比较 如果搜索的值大于中值 则使用同样的方式

大家好,我是讯享网,很高兴认识大家。



1.说一下什么是二分法?使用二分法时需要注意什么?如何用代码实现?

二分法查找(Binary Search)也称折半查找,是指当每次查询时,将数据分为前后两部分,再用中值和待搜索的值进行比较,如果搜索的值大于中值,则使用同样的方式(二分法)向后搜索,反之则向前搜索,直到搜索结束为止。

二分法使用的时候需要注意:二分法只适用于有序的数据,也就是说,数据必须是从小到大,或是从大到小排序的。

执行结果如下:

blockquote>

元素第一次出现的位置&java基础面试题 csdn#xff08;从0开始):4

/blockquote>

2.什么是斐波那契数列?用代码如何实现?

斐波那契数列(Fibonacci Sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711...... 在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

斐波那契数列之所以又称黄金分割数列,是因为随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值 0.......

斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711......

斐波那契数列的特征

:第三项开始(含第三项)它的值等于前两项之和。

斐波那契数列代码实现示例,如下所示:

/code>3.一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?请使用代码实现。
  • 第一个月:有 1 对小兔子;
  • 第二个月:小兔子变成大兔子;
  • 第三个月:大兔子下了一对小兔子;
  • 第四个月:大兔子又下了一对小兔子,上个月的一对小兔子变成了大兔子;
  • ......
  • div border="1"> 月数 1 2 3 4 5 6 7 8 9 10 11 12 幼仔对数 1 0 1 1 2 3 5 8 13 21 34 55 成兔对数 0 1 1 2 3 5 8 13 21 34 55 89 总对数 1 1 2 3 5 8 13 21 34 55 89 144 对数组中相邻的数据,依次进行比较;如果前面的数据大于后面的数据,则把前面的数据交换到后面。经过一轮比较之后,就能把数组中最大的数据排到数组的最后面了;再用同样的方法,把剩下的数据逐个进行比较排序,最后得到就是从小到大排序好的数据。 冒泡排序算法代码实现,如下所示:
    讯享网
    执行结果如下:
    排序前:[132, 110, 122, 90, 50]
    第1次排序:[110, 122, 90, 50, 132]
    第2次排序:[110, 90, 50, 122, 132]
    第3次排序:[90, 50, 110, 122, 132]
    第4次排序:[50, 90, 110, 122, 132]
    排序后:[50, 90, 110, 122, 132]
    5.什么是选择排序?用代码如何实现?
    选择排序(Selection Sort)算法也是比较简单的排序算法,其实现思路是每一轮循环找到最小的值,依次排到数组的最前面,这样就实现了数组的有序排列。 比如,下面是一组数据使用选择排序的执行流程:
    • 初始化数据:18, 1, 6, 27, 15
    • 第一次排序:1, 18, 6, 27, 15
    • 第二次排序:1, 6, 18, 27, 15
    • 第三次排序:1, 6, 15, 27, 18
    • 第四次排序:1, 6, 15, 18, 27
    选择排序算法代码实现,如下所示: 执行结果如下:
    排序前:[18, 1, 6, 27, 15]
    第0次排序:[1, 18, 6, 27, 15]
    第1次排序:[1, 6, 18, 27, 15]
    第2次排序:[1, 6, 15, 27, 18]
    第3次排序:[1, 6, 15, 18, 27]
    排序后:[1, 6, 15, 18, 27]
    6.什么是插入排序?用代码如何实现?
    插入排序(Insertion Sort)算法是指依次把当前循环的元素,通过对比插入到合适位置的排序算法。 比如,下面是一组数据使用插入排序的执行流程:
    • 初始化数据:18, 1, 6, 27, 15
    • 第一次排序:1, 18, 6, 27, 15
    • 第二次排序:1, 6, 18, 27, 15
    • 第三次排序:1, 6, 18, 27, 15
    • 第四次排序:1, 6, 15, 18, 27
    插入排序算法代码实现,如下所示:
    讯享网
    执行结果如下:
    排序前:[18, 1, 6, 27, 15]
    第1次排序:[1, 18, 6, 27, 15]
    第2次排序:[1, 6, 18, 27, 15]
    第3次排序:[1, 6, 18, 27, 15]
    第4次排序:[1, 6, 15, 18, 27]
    排序后:[1, 6, 15, 18, 27]
    7.什么是快速排序?用代码如何实现?
    快速排序(Quick Sort)算法和冒泡排序算法类似,都是基于交换排序思想实现的,快速排序算法是对冒泡排序算法的改进,从而具有更高的执行效率。 快速排序是通过多次比较和交换来实现排序的执行流程如下:
    • 首先设定一个分界值,通过该分界值把数组分为左右两个部分;
    • 将大于等于分界值的元素放到分界值的右边,将小于分界值的元素放到分界值的左边;
    • 然后对左右两边的数据进行独立的排序,在左边数据中取一个分界值,把小于分界值的元素放到分界值的左边,大于等于分界值的元素,放到数组的右边;右边的数据也执行同样的操作;
    • 重复上述操作,当左右各数据排序完成后,整个数组也就完成了排序。
    快速排序算法代码实现,如下所示: 执行结果如下:
    排序前:[18, 1, 6, 27, 15]
    排序后:[1, 6, 15, 18, 27]
    最常见的算法问题应该就是对冒泡和快排的掌握情况了,对于这两个算法来说,最好能到达手写代码的情况。
    讯享网
    小讯
    上一篇 2024-12-27 11:42
    下一篇 2024-12-28 08:27

    相关推荐

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
    如需转载请保留出处:https://51itzy.com/kjqy/5762.html