第五章总结

一、一维数组

一维数组实质上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一数据时,可以应用这种类型的数组。本节将讲解一维数组的创建、初始化及使用。

数组名字:被连接到数组变量的名称。

数组元素的个数:指定数组中变量的个数,即数组的长度.

4604221092bd4569bc721b41f17ee72a.jpg

 二、二维数组

如果一维数组中的各个元素仍然是一个数组,那么它就是一个二维数组。二维数组常用于表示表,麦中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表元素所在的列。

三、数组的基本操作

3e9754cc24ba4854880b1bdfab5efa02.jpg

四、对数组进行排序

通过 Arrays 类的静态方法 sort0可以实现对数组的排序。sot0方法提供了多种重载形式,可对任意类型的数组进行升序排序。

f018140fff27498d9d38c732f7930d98.jpg

五、复制数组

Arrays类的copyOf0万法与 copyOfange0方法可以实现对数组的复制。copyOf0方法是复制数组至指定长度,copyOfRange0方法则将指定数组的指定长度复制到一个新数组中 。

六、数组排序算法

数组有很多常用的算法,本节将介绍常用的排序算法,包括冒泡排序、直接选择排序和反转排序。

在程序设计中,经常需要将一组数列进行排序,这样更加方便统计与查询。程序常用的排序方法有冒泡排序、选择排序和反转排序等。本节将讲解冒泡排序方法,它以简洁的思想与实现方法而备受开发人员青睐,是广大学习者最先接触的一种排序算法。

冒泡排序是最常用的数组排序算法之一,它排序数组元素的过程总是将较小的数往前放、较大的数往后放,类似水中气泡往上升的动作,所以称为冒泡排序。

冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。

40793c503119474eb2896db46bb12695.jpg

  第1轮外层循环时把最大的元素值 63 移动到了最后面(相应地,比63 小的元素向前移动,类似气泡上升):第2轮外层循环不再对比最后一个元素值 63,因为它已经被确认为最大(不需要上升),应该放在最后,需要对比和移动的是其他剩余元素,这次将元素 24 移动到了 63 的前一个位置。其他循环将以此类推,继续完成排序任务。

七、直接选择排序

直接选择排序属于选择排序的一种,它的排序速度要比冒泡排序快一些,也是常用的排序算法初学者应该掌握。

直接选择排序的基本思想是将指定排序位置元素与其他数组元素分别对比,如果满足条件就交换元素值。注意这里与冒泡排序的区别,不是交换相邻元素,而是把满足条件的元素与指定的排序位置元素交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,直至整个数组都变成已排序好的格式这就好比有一个小学生,从包含数字 1~10 的乱序的数字堆中分别选择合适的数字,组成一个1-10的排序,而这个学生首先从数字堆中选出 1,放在第一位,然后选出2(注意这时数字堆中已经没有1了)放在第二位,以此类推,直到其找到数字 9,放到 8 的后面,最后剩下 10,就不用选择了,直接放到最后就可以。

与冒泡排序相比,直接选择排序的交换次数要少很多,所以速度会快些。

     每一趟从待排序的数据元素中选出最小(或最大的一个元素,顺序地放在已排好序的数列的最后,直到全部待排序的数据元素排完。

617e9fbab93944ed9135463496285575.jpg

8246702dfef0410b9cc4700dce9b033a.jpg 

 八、反转排序

反转排序的基本思想比较简单,也很好理解,其实现思路就是把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换。

反转排序是对数组两边的元素进行替换,所以只需要循环数组长度的半数次,如数组长度为7,那么 for 循环只需要循环 3 次。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值