龙空技术网

Java入门超经典内部教程-数组排序入门

叩丁狼stef 63

前言:

当前同学们对“二分法实现数组排序”大概比较注重,同学们都需要了解一些“二分法实现数组排序”的相关文章。那么小编也在网上网罗了一些关于“二分法实现数组排序””的相关资讯,希望咱们能喜欢,你们快快来了解一下吧!

1.1. 排序操作(掌握原理)

需求:完成对int[] arr = new int[]{2,9,6,7,4,1}数组元素的升序排序操作.

1.1.1. 冒泡排序原理(掌握原理)

对未排序的各元素从头到尾依次比较相邻两个元素的大小关系,如果前一个元素大于后一个元素则交换位置,经过第一轮比较后可以得到最大值,同理第二轮比较后出现第二大值等。

针对int[] arr = new int[]{ 2, 9, 6, 7, 4, 1 }数组元素做排序操作:

该数组有6个元素,只需要5轮比较。

第1轮比较:需要比较5次,比较完出现最大值。

第2轮比较:需要比较4次,比较完出现第二大值。

第3轮比较:需要比较3次,比较完出现第三大值。

...

可以看出如有N个元素,则需要N-1轮比较,第M轮需要N-M次比较。

交换数组中两个元素的方法

排序代码:

首先我们使用最直白的方式,进行一次排序模拟:

寻找规律,优化上述代码:

1.1.2. Arrays类中的排序方法(会调用)

Arrays类中已经提高了数组排序的方法sort,并且是调优之后的,性能非常优异,在开发中只需要我们直接调用该方法即可即可。

1.2. 二分法查找(掌握原理)

查找数组元素的算法:

线性查找:从头找到尾,性能比较低。 二分法查找(折半查找):前提数组元素是有序的,性能非常优异。

1.2.1. 二分法搜索原理(掌握原理)

猜数字游戏:

电脑随机生成一个[ 1 , 100 ]之间的整数a,等玩家来猜,猜之后,电脑提示出三种结果:你猜的数偏大,偏小和猜中了。此时为了使用最少次数猜中,玩家必定先猜(1+100)/2的商50,如果此时电脑提示猜的偏小了,那就能推断出该随机数在[ 51 , 100 ]之间,此时再猜(51+100)/2的商75,如果电脑提示猜大了,那么该随机数必在[ 51 , 74 ]之间,那么继续猜(51+74)/2的商,如此每次都可以排除剩下结果一半的可能性,直到猜到为止。

代码如下:

1.2.2. Arrays类中的二分法查找方法(会调用)

小结:排序和二分法查找的原理需要掌握,会调用Arrays类中方法完成相关功能。

本系列教程为叩丁狼Java基础班内部教材,若要获得最好的学习效果,需要配合对应教学视频一起学习。需要完整教学视频,请私信作者。

标签: #二分法实现数组排序 #交换法排序数组 #用java编写数组升序排序程序 #java数组升序排序代码 #java数组升序排序代码是多少