如何将Java数组进行排序? 列举五种常见的方法

365网站手机打不开 admin 2025-07-13 02:54:56 阅读 3527

在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!

相关文章