加入收藏 | 设为首页 | 会员中心 | 我要投稿 大同站长网 (https://www.0352zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

听我讲完这些Java经典算法包你爱上她

发布时间:2021-04-18 15:41:01 所属栏目:动态 来源:互联网
导读:好,我是小羽。 对于编程来说的话,只有掌握了算法才是了解了编程的灵魂,算法对于新手来说的话,属实有点难度,但是以后想有更好的发展,得到更好的进阶的话,对算法进行系统的学习是重中之重的。 对于 Java 程序员来说,这一门后端语言只是我们的外功,我

好,我是小羽。

对于编程来说的话,只有掌握了算法才是了解了编程的灵魂,算法对于新手来说的话,属实有点难度,但是以后想有更好的发展,得到更好的进阶的话,对算法进行系统的学习是重中之重的。

对于 Java 程序员来说,这一门后端语言只是我们的外功,我们更多的是学习它的语法,框架以及一些工具的使用。而算法才是我们真正的内功,它更多的是关注如何设计系统,如何编写高性能的代码,不断培养我们的思维能力,从而提升我们的工作效率。

小羽今天为大家介绍的是关于 Java 中我们需要了解的一些经典算法,希望大家能从这些经典算法中,品尝到算法的美妙与奇特,对她产生兴趣,更好的为我们的职业发展助力前行。好了,开始进入我们的正文:

二分查找

简介

基本思想:又叫折半查找,要求待查找的序列有序,是一种快速查找算法,时间复杂度为 O(logn),要求数据集为一个有序数据集。

使用

应用场景:一般用于查找数组元素,并且数组在查找之前必须已经排好序(一般是升序)。

步骤:

1、取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,

2、如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。

3、直到查找到了为止,否则序列中没有待查的关键字。想:比较前后相邻的两个数据,如果前面数据大于后面的数据,就将这二个数据交换。这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第 N-1 个位置。N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。

使用

应用场景:数据量不大,对稳定性有要求,且数据基本有序的情况。

步骤:

1、将序列中所有元素两两比较,将最大的放在最后面。

2、将剩余序列中所有元素两两比较,将最大的放在最后面。

3、重复第二步,直到只剩下一个数。

代码示例:本思想:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。

使用

应用场景:数据量不大,对算法的稳定性有要求,且数据局部或者整体有序的情况。

步骤:

1、将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

(编辑:大同站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读