全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

java中常用的算法总结

发布时间:2022-04-20 11:31:00
发布人:wjy

  程序员进行编程的过程中肯定少不了对于数据的处理,那么此时了解Java算法就非常重要,Java算法有很多,今天千锋小编针对Java中常用的算法做了一期整理,下面就简单的介绍一下程序员常用的一些Java算法。

     java中常用的算法

  一、排序

  1.1 排序概述

  排序(sorting)的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。

  内部排序和外部排序:一类是整个排序过程在内存储器中进行,称为内部排序;另一类是由于待排序元素数量太大,使得内存储器无法容纳全部数据,排序需要借助外部存储设备才能完成,这类排序称为外部排序。

  比较排序和非比较排序

  大部分排序都是需要通过比较首先来判断大小,作为排序的依据的。

  但是也有例外,比如计数排序、基数排序不需要进行比较。效率可以更高,但同时也会有一些限制条件,也可能需要更多的空间。

  冒泡排序、选择排序、直接插入排序是最基本的三种排序,效率低但是算法简单。排序的学习一般从这三种排序算法着手。

  1.2冒泡排序

  冒泡排序的算法

  1) 整个数列分成两部分:前面是无序数列,后面是有序数列

  2) 初始状态下,整个数列都是无序的,有序数列是空

  3) 如果一个数列有n个元素,则至多需要n-1趟循环才能保证数列有序

  4) 每一趟循环可以让无序数列中最大数排到最后,(也就是说有序数列的元素个数增加1)

  5) 每一趟循环都从数列的第一个元素开始进行比较,依次比较相邻的两个元素,比较到无序数列的末尾即可(而不是数列的末尾)

  6) 如果前一个大于后一个,交换

  1.3 选择排序

  选择排序的算法

  1) 整个数列分成两部分:前面是有序数列,后面是无序数列

  2) 初始状态下,整个数列都是无序的,有序数列是空

  3) 一共n个数,需要n-1趟循环(一趟都不能少)

  4) 每比较完一趟,有序数列数量+1,无序数列数量-1

  5) 每趟先假设无序数列的第1个元素(整个数列的第i个元素)是最小的,让当前最小数,从第i+1个元素开始比较,一直比较到最后一个元素。如果发现更小的数,就假设当前数是最小数。

  6) 一趟比较完后,将发现最小数和无序数列的第一个数交换(如果最小数不是无序数列的第一个数)

  二、递归和折半查找

  2.1 递归

  递归(recursion)是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。利用递归可以用简单的程序来解决一些复杂的问题。比如:斐波那契数列的计算、汉诺塔、快速排序等问题。

  递归问题的特点:一个问题可被分解为若干层简单的子问题;子问题和其上层问题的解决方案一致;外层问题的解决依赖于子问题的解决。

    与此同时,递归有着思路自然、程序简单的优点,自然也有缺点,递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多。

  2.2 折半查找

  折半查找又称为二分查找,这种查找方法需要待查的查找表满足两个条件:

  首先,查找表必须使用顺序存储结构;

  其次,查找表必须按关键字大小有序排列。

    上面就是java中常用的算法的一个简单的介绍和总结。希望这篇对Java语言经典算法的介绍能够帮助大家。如果你对Java培训有兴趣,欢迎随时咨询千锋教育!

相关文章

短视频发布在哪个平台收益最好?短视频平台收益分析

2023-09-19

怎么剪辑短视频赚钱?短视频赚钱方法

2023-09-19

短视频怎么靠播放量赚钱?短视频赚钱方式介绍

2023-09-19

今日头条视频怎么赚钱?头条号赚钱方法汇总

2023-09-19

今日头条展现量是什么?今日头条展现量规则分析

2023-09-19

今日头条怎么发布文章有收益?今日头条收益规则

2023-09-19
在线咨询 免费试学 教程领取