小怡分享之Java数组小练习

前言:

🌈✨前面小怡给大家分享了数组的知识,现在小怡给大家分享一些数组的小练习。

1.数组转字符串

代码示例:

使用这个方法后续打印数组就更方便一些,打印出来的是字符串,Java中提供了 java.util.Arrays 包,其中包含了一些操作数组的常用方法。

2.求数组中元素的平均值

代码示例:

执行结果:3.5

这里写了一个方法avg,用了for-each,这里大家看不懂的可以看看小怡的上一篇文章,大家要记得在返回值那里加上double噢。

3.查找数组中的指定元素(顺序查找)

给定一个数组,再给定一个元素,找出该元素在数组中的位置 。

代码示例:

执行结果为:3

这是一个挺简单的代码,简单的使用了一个for循环,相信大家一看就能懂。

4.查找数组中指定元素(二分查找)

针对有序数组,可以使用更高效的二分查找。以升序数组为例,二分数组的思路就是先取中间位置的元素,然后使用待查找元素与数组中间元素进行比较:

有序数组:按照数字大小排列的数组

1.升序:从小到大,eg:1,2,3,4

2.降序:从大到小,eg:4,3,2,1

  • 如果相等,即找到了返回该元素在数组中的下标;
  • 如果小于,以类似方式到数组左半侧查找;
  • 如果大于,以类似方式到数组右半侧查找。

代码示例:

二分查找效率非常高,但前提是数组必须是有序的。在这里我们写了一个方法binarySearch,我们写之前要知道我们应该怎么去实现,二分查找就像每次都对半折一样,所以效率很高,每次都得左下标加上右下标再除以2,这里小怡给大家写了一点注释,大家可以看看。

5.数组排序(冒泡排序)

给定一个数组,让数组升序(降序)排序。

算法思路:

假设排升序:

  1. 将数组中相邻元素从前往后依次进行比较,如果前一个元素比后一个元素大,则交换,一趟下来后最大元素就在数组的末尾;
  2. 依次按上述过程,直到数组中所有的元素都排列好。

代码示例:

冒泡排序性能较低,Java中内置了更高效的排序算法。

默认从小到大排序。

6.数组逆序

给定一个数组,将里面的元素逆序排列。

思路:

设定两个下标,分别指向第一个元素和最后一个元素,交换两个元素的位置。然后让前一个下标自增,后一个下标自减,循环即可。

代码示例:

🌈✨今天的练习分享到这里结束啦,小怡和大家一起分享一起进步一起学习," 默默无闻的人们被送入坟墓,他们由于胆怯,从未尝试着努力过;他们若能接受诱导起步,就很有可能功成名就。------席巴·史密斯"。希望大家也多多练习,这样才能进步哦。

相关推荐
后端小张10 小时前
【JAVA 进阶】Spring Cloud 微服务全栈实践:从认知到落地
java·开发语言·spring boot·spring·spring cloud·微服务·原理
zl97989910 小时前
RabbitMQ-发布确认高级
java·分布式·rabbitmq
灰小猿10 小时前
分布式项目集成TLog实现轻量级日志链路追踪
java·分布式·springcloud·tlog·日志链路追踪
乄bluefox10 小时前
高性能分布式 ID 生成器:基于 Redis Segment 预分配的实践
java·redis·分布式
Jiong-95210 小时前
Java求职面试:谢飞机的奇妙旅程
java·jvm·线程池·多线程·hashmap·juc·arraylist
小二·10 小时前
Java核心机制精讲:深入理解 static 关键字与引用传递
java·java-ee
IDOlaoluo10 小时前
apache-tomcat-7.0.42.tar.gz 下载与安装完整教程(附安装包)
java·tomcat·apache
喝养乐多长不高10 小时前
RabbitMQ:消息确认
java·rabbitmq·java-rabbitmq
草莓熊Lotso11 小时前
C++ STL map 系列全方位解析:从基础使用到实战进阶
java·开发语言·c++·人工智能·经验分享·网络协议·everything
shura101411 小时前
如何优雅地实现参数校验
java·开发语言