2022年JAVA数组的排序方法实例 .pdf
冒泡排序法1.public class SortArray_01 2.public static void main(String args)3.int array=14,5,86,4,12,3,21,13,11,2,55;/创建一个初始化的一维数组array 4.System.out.println(未排序的数组:);5.for(int i=0;i array.length;i+)/遍历 array 数组中的元素6.System.out.print(+arrayi);/输出数组元素7.if(i+1)%5=0)/每 5 个元素一行8.System.out.println();9.10.int mid;/定义一个中间变量,起到临时存储数据的作用11.for(int i=0;i array.length;i+)/执行冒泡排序法12.for(int j=i;j array.length;j+)13.if(arrayj arrayi)14.mid=arrayi;15.arrayi=arrayj;16.arrayj=mid;17.18.19.20.System.out.println(n使用冒泡法排序后的数组:);21.for(int i=0;i array.length;i+)/遍历排好序的 array 数组中的元素22.System.out.print(+arrayi);/输出数组元素23.if(i+1)%5=0)24.System.out.println();/每 5个元素一行25.26.27.数组递增排序名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -1.import java.util.Arrays;2.import java.util.Random;3.4.public class SortArray_02 5.public static void main(String args)6.Random rd=new Random();7.int array=new int15;/声明数组8.System.out.println(没有使用 sort 方法前的数组:);9.for(int i=0;i array.length;i+)/利用随机数随意产生 15 个 020 之间的随机数10.arrayi=rd.nextInt(20);/给 array 数组赋值11.System.out.print(+arrayi);12.if(i+1)%5=0)13.System.out.println();14.15.Arrays.sort(array);/对 array 数组进行升序排序16.System.out.println(n使用 sort 方法后的数组:);17.for(int i=0;i array.length;i+)/将array 数组中的数据输出18.System.out.print(+arrayi);19.if(i+1)%5=0)20.System.out.println();21.22.23.部分数组递增排序1.import java.util.Arrays;2.import java.util.Random;3.4.public class SortArray_03 5.public static void main(String args)6.Random rd=new Random();7.int array=new int15;/声明数组8.System.out.println(没有使用 sort 方法前的数组:);9.for(int i=0;i array.length;i+)/利用随机数随意产生 15 个 020 之间的随机数10.arrayi=rd.nextInt(20);/给 array 数组赋值名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -11.System.out.print(+arrayi);12.if(i+1)%5=0)13.System.out.println();14.15.Arrays.sort(array,5,14);/对 array 数组中的第 5 个元素第 13 个元素之间进行升序排序16.System.out.println(n使用 sort 方法后的数组:);17.for(int i=0;i array.length;i+)/将 array 数组中的数据输出18.System.out.print(+arrayi);19.if(i+1)%5=0)20.System.out.println();21.22.23.选择排序法1.public class SortArray_04 2.public static void main(String args)3.int array=14,5,86,4,12,3,51,13,11,2,32,6;/创建一个初始化的一维数组array 4.int keyValue;/表示最小的元素值5.int index;/表示最小的元素值的下标6.int temp;/中间变量7.System.out.println(未排序的数组:);8.for(int i=0;i array.length;i+)/遍历array 数组中的元素9.System.out.print(+arrayi);/输出数组元素10.if(i+1)%5=0)/每 5 个元素一行11.System.out.println();12.13.for(int i=0;i array.length;i+)/使用选择排序法的核心14.index=i;15.keyValue=arrayi;16.for(int j=i;j array.length;j+)17.if(arrayj keyValue)名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -18.index=j;19.keyValue=arrayj;20.21.temp=arrayi;22.arrayi=arrayindex;23.arrayindex=temp;24.25.System.out.println(n使用选择排序法后的数组:);26.for(int i=0;i array.length;i+)/遍历排好序的 array 数组中的元素27.System.out.print(+arrayi);/输出数组元素28.if(i+1)%5=0)29.System.out.println();/每 5 个元素一行30.31.32.快速排序法0.public class SortArray_05 1.public static void main(String args)2.int intArray=12,11,45,6,8,43,40,57,3,20,15;3.System.out.println(排序前的数组:);4.for(int i=0;i intArray.length;i+)5.System.out.print(+intArrayi);/输出数组元素6.if(i+1)%5=0)/每 5个元素一行7.System.out.println();8.9.System.out.println();10.int b=quickSort(intArray,0,intArray.length-1);/调用 quickSort 11.System.out.println(使用快迅排序法后的数组:);12.for(int i=0;i b.length;i+)13.System.out.print(+bi);14.if(i+1)%5=0)/每 5个元素一行15.System.out.println();16.名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -17.18.public static int getMiddle(int array,int left,int right)19.int temp;20./进行一趟快速排序,返回中心点位置21.int mid=arrayleft;/把中心置于 a0 22.while(left right)23.while(left=mid)24.right-;25.temp=arrayright;/将比中心点小的数据移动到左边26.arrayright=arrayleft;27.arrayleft=temp;28.while(left right&arrayleft=mid)29.left+;30.temp=arrayright;/将比中心点大的数据移动到右边31.arrayright=arrayleft;32.arrayleft=temp;33.34.arrayleft=mid;/中心移到正确位置35.return left;/返回中心点36.37.public static int quickSort(int array,int left,int right)/快速排序法38.if(left right-1)/如果开始点和结点没有重叠的时候,也就是指针没有执行到结尾39.int mid=getMiddle(array,left,right);/重新获取中间点40.quickSort(array,left,mid-1);41.quickSort(array,mid+1,right);42.43.return array;44.45.名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -