首页 > Java资讯 > 如何对java数组排序

如何对java数组排序

更新时间:2020-09-18 17:18 浏览158次 来源:动力节点

关于java编程的基础知识(比如基本算法、数据结构等)在前面已经介绍过了,相信大家也都有学习,java数组也是java零基础的新手朋友们需要学习的基础知识,下面我们一起来学习java数组排序的知识,了解怎么样用java算法对数组排序。

要想对数值型数组进行排序,可以使用Arrays类中的sort方法:

int[] a= new int[10000];

...

Arrays.sort(a)

这个方法使用了优化的快速排序算法。快速排序算法对于大多数数据集合来说都是效率比较高的,Arrays类还提供了几个使用起来很便捷的方法。

下面例子中的程序将产生一个抽奖游戏中的随机数值组合。

image.png

image.png

假如抽奖是“从49个数值中抽取6个”,那么,程序可能的输出结果为:

image.png

要想选择这样一个随机的数值集合,就要首先将数值1, 2, ...,n存入数组numbers中:

int[] numbers= new int[n];

for(inti =0;i<numbers.length; p="" i++)<="">

numbers[i] = i + 1;

而用第二个数组存放抽取出来的数值:int[]result=new int[k];

现在,就可以开始抽取k个数值了。Math.rando方法将返回一个0-1之间(含0、不含1)的随机浮点数。用n 乘以这个浮点数,就可以得到从0-n-1之间的一个随机数。

int r =(int)(Math.random()*n;

下面将result的第i个元素设置为numbers[r]存放的数值,最初就是r本身。但正如所看到的那样,

numbers数组的内容在每一次抽取之后都会发生变化。

result[i] = numbers[r];因为所有抽奖的数值不能一样,所以必须确保不会再次抽取到那个数值。因此,这里使用数组中的最后一个数值改写number[r],并将n减1 。

numbers[r]= numbers[n - 1];

n--;

关键在于每次抽取的都是下标,而不是实际的值。下标指向(point into)包含尚未抽取过的数组元素。

在抽取了k个数值之后,就可以对result数组进行排序了,这样使得输出效果更加清晰:

Arrays.sort(result);

for(int r:result)

System.out.println(r);

• static void sort(type[] a)

使用优化的快速排序算怯对数组进行排序。

参数:a 一个类型为int、long、short 、char、byte、float或double的数组

• static int binarySearch(type[] a, type v)

使用二分搜索算法查找值。如果找到,返回相应的下标:否则,返回一个负值r;-r-1为保持有序v应插入的位置。

参数:a 一个类型为int、long、short、char、byte、float或double的有序数组

v 与a中元素类型相同的一个值

• static void fill(type[] a, type v)

将数组的所有元素设置为v。

参数:a 一个类型为int long、short、char、boolean、float或double 的数组

v 与a中元素类型相同的一个值

• static boolean equals(type[ ]a,type[] b}

如果两个数组的长度相同,并且下标相同的元素都对应相等,则返回true

参数: a, b 类型为int long short char、byte、boolean、float、double的数组

以上就是对java数组排序内容的介绍,并用实例具体说明应该用什么样方法来对java数组排序,相信有了例子大家会更清楚具体的操作,希望大家在平时空余的时间多多学习java视频教程中关于java数组排序的内容,并加以练习做到完全掌握数组的知识和操作。


热门课程推荐

全部班型支持免费试学

动力节点在线报名表(此信息已加密,请放心填写)

返回顶部