数组排序的实现:自然升序排序,自然降序排序,数组倒置,随机排序。

Java对数组进行排序,Java提供了Array.sort(int [] arr)对数组进行升序排列
1 import java.util.Arrays; 2
3 public class Main {
4 public static void main(String[] args) {
5
6 int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
7 Arrays.sort(a);
8 for(int i = 0; i < a.length; i ++) {
9 System.out.print(a[i] + " ");
10 }
11 }
12
13 }
Arrays.sort( T[]a,Comaparator c)才行,第二个参数需要自定义一个比较器类实现Comaparator接口,根据需要重新compare方法。
第二种方法先进行升序排列,再调用Arrays的asList方法转换成数组,然后调用Collections的reverse方法倒序排列,最后调用Collection的toArray方法转换成数组。
随机排序
对数组进行随机排序分为两种形式,一种是完全随机排序,一种是不完全随机排序,区别是完全随机对数组中原先任意的数据不会出现在原来的位置上,那么,一般来说,完全随机排序的需求会相对较大,我在此先给出完全随机方式,如果你需要不完全随机排序,可以再说:
举个例子:有一批数据,共n个,依次为a1,a2,a3,…,an-1,an,需要对它们进行完全随机排序。排序方法类似于直接选择,从左至右,即从ai+1an中随机抽取一个数据与ai交换(1≤i≤n-1)。先排序第一个数据a1:从a2an中随机抽出一个数据与a1交换;再排第二个数据a2:从a3an中随机抽取一个数据与a2交换;再排第三个数据a3:从a4an中随机抽取一个数据与a3交换;…;最后排第n-1个数据an-1:从an~an中随机抽取一个数据与an-1交换;第n个数据已不需要排序。这样,总共需要排n-1次。 从以上的算法分析中可以看出,每个待排序数据都会与其它数据交换位置,所以,每个数据都不会出现在原先的位置上,这是完全随机排序。
String[] arr = new String[] {“1”, “2”};
List list = Arrays.asList(arr);转化为List

直接调用shuffle,就是随机排序
Collections.shuffle(list);

猜你喜欢

转载自blog.csdn.net/qq_41556688/article/details/88933772