在Java中数组排序是一个非常基础的问题,也是面试中经常问及的问题。本篇文章将向各位小伙伴介绍五种常见的排序方法。Arrays.sort()Arrays.sort()排序方法是在Java当中最简单,也是最常用的排序方法
int[] arr1 = {21,16,34,5,20};
Arrays.sort(arr1);
for(int i=0;i System.out.print(arr1[i]+" "); }输出结果 5 16 20 21 34 通过输出结果可以知道,Arrays.sort()排序方法默认将数组进行升序排序。 冒泡排序顾名思义,就像泡泡一样,比较轻地就浮在上面,较重的那个就会往下沉。那么如何知道哪个轻,哪个重?也就是比较数组里的数字大小。就要比较相邻的两个数字,如果前者比后者大,那么两者交换位置,较大的那位继续跟下一位比较;如果后者大,那么位置不会更换,大的那一位继续和下一位进行比较。 package simple_sort; public class Dome_sort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] numbers = new int[]{1,9,5,6,7}; int i,j; for(i =0;i for(j=0;j { if(numbers[j]>numbers[j+1]) { int temp= numbers[j]; numbers[j]=numbers[j+1]; numbers[j+1]=temp; } } } System.out.println("排序后的结果"); for(i=0;i System.out.print(numbers[i]+" "); } } 输出结果 1 5 6 7 9 选择排序选择排序原理就是,遍历元素,找到一个最小或是最大值,然后把这个值放在首位,在剩下的所有元素中继续挑选最小和最大的值。如此往复,直到排序完成。 public class SortDemo { public static void main(String[] args) { int[] arr = new int[] { 5, 3, 6, 2, 10, 2, 1 }; selectSort(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } public static void selectSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int minIndex = i; // 用来记录最小值的索引位置,默认值为i for (int j = i + 1; j < arr.length; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; // 遍历 i+1~length 的值,找到其中最小值的位置 } } // 交换当前索引 i 和最小值索引 minIndex 两处的值 if (i != minIndex) { int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } // 执行完一次循环,当前索引 i 处的值为最小值,直到循环结束即可完成排序 } } }输出结果 1 2 2 3 5 6 10 反转排序反转排序就是把原数组的顺序反过来输出。它的思想也很简单,就是把数组的第一位和最后一位进行交换;第二位和倒数第二位进行交换...以此类推,直到反转结束。 public class ReverseSort { public static void main(String[] args) { int arr[]= {10,20,30,40,50,60}; ReverseSort sort=new ReverseSort(); sort.sort(arr); } public void sort(int[]array) { int temp; int len=array.length; for (int i = 0; i < len/2; i++) { temp=array[i]; array[i]=array[len-1-i]; array[len-1-i]=temp; } for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }结果输出 60 50 40 30 20 10 直接插入排序直接插入排序原理就是将定义的数组,从第二个到最后一个元素都依次作为插入数据。分别和它们各自前面的值进行比较,如果比较比前者小,则直接插入在前者的前面。直到比较到比插入数据的值要小,或者已经到了第一个位置,则停止比较插入。 public class InsertAlgorithm { public static void insertAlgorithm(int r[]){ for(int i=1;i int insertNumber=r[i];//将要插入的数据赋值给变量insertNumber int j=i-1; while(j>=0&&insertNumber r[j+1]=r[j];//第j个元素向后移动 --j;//比较插入数据和r[j]的大小,直到j为0 } r[j+1]=insertNumber;//退出while循环,即插入的数据已经不小于r[j]了,这时插入数据插入到r[j]后面 } for(int a:r){ System.out.print(a+" "); } } public static void main(String args[]){ int a[]={52,39,67,95,70,8,25}; insertAlgorithm(a); } }输出结果 8 25 39 52 67 70 95 总结以上就是关于Java中数组排序的五种常见排序方法的全部内容,如果想要了解更多关于Java数组排序的方法,请多多关注并支持W3Cschool!