怎么将Java数组进行排序
本篇内容介绍了“怎么将Java数组进行排序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Arrays.sort()Arrays.sort()排序方法是在Java当中最简单,也是最常用的排序方法
int[]arr1={21,16,34,5,20};Arrays.sort(arr1);for(inti=0;i<arr1.length;i++){System.out.print(arr1[i]+"");}
输出结果
516202134
通过输出结果可以知道,Arrays.sort()
排序方法默认将数组进行升序排序。
顾名思义,就像泡泡一样,比较轻地就浮在上面,较重的那个就会往下沉。那么如何知道哪个轻,哪个重?也就是比较数组里的数字大小。就要比较相邻的两个数字,如果前者比后者大,那么两者交换位置,较大的那位继续跟下一位比较;如果后者大,那么位置不会更换,大的那一位继续和下一位进行比较。
packagesimple_sort;publicclassDome_sort{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubint[]numbers=newint[]{1,9,5,6,7};inti,j;for(i=0;i<numbers.length;i++){for(j=0;j<numbers.length-1;j++){if(numbers[j]>numbers[j+1]){inttemp=numbers[j];numbers[j]=numbers[j+1];numbers[j+1]=temp;}}}System.out.println("排序后的结果");for(i=0;i<numbers.length;i++)System.out.print(numbers[i]+"");}}
输出结果
15679选择排序
选择排序原理就是,遍历元素,找到一个最小或是最大值,然后把这个值放在首位,在剩下的所有元素中继续挑选最小和最大的值。如此往复,直到排序完成。
publicclassSortDemo{publicstaticvoidmain(String[]args){int[]arr=newint[]{5,3,6,2,10,2,1};selectSort(arr);for(inti=0;i<arr.length;i++){System.out.print(arr[i]+"");}}publicstaticvoidselectSort(int[]arr){for(inti=0;i<arr.length-1;i++){intminIndex=i;//用来记录最小值的索引位置,默认值为ifor(intj=i+1;j<arr.length;j++){if(arr[j]<arr[minIndex]){minIndex=j;//遍历i+1~length的值,找到其中最小值的位置}}//交换当前索引i和最小值索引minIndex两处的值if(i!=minIndex){inttemp=arr[i];arr[i]=arr[minIndex];arr[minIndex]=temp;}//执行完一次循环,当前索引i处的值为最小值,直到循环结束即可完成排序}}}
输出结果
12235610反转排序
反转排序就是把原数组的顺序反过来输出。它的思想也很简单,就是把数组的第一位和最后一位进行交换;第二位和倒数第二位进行交换...以此类推,直到反转结束。
publicclassReverseSort{publicstaticvoidmain(String[]args){intarr[]={10,20,30,40,50,60};ReverseSortsort=newReverseSort();sort.sort(arr);}publicvoidsort(int[]array){inttemp;intlen=array.length;for(inti=0;i<len/2;i++){temp=array[i];array[i]=array[len-1-i];array[len-1-i]=temp;}for(inti=0;i<array.length;i++){System.out.println(array[i]);}}}
结果输出
605040302010直接插入排序
直接插入排序原理就是将定义的数组,从第二个到最后一个元素都依次作为插入数据。分别和它们各自前面的值进行比较,如果比较比前者小,则直接插入在前者的前面。直到比较到比插入数据的值要小,或者已经到了第一个位置,则停止比较插入。
publicclassInsertAlgorithm{publicstaticvoidinsertAlgorithm(intr[]){for(inti=1;i<r.length;i++){//从数组的第二个元素到数组的最后一个元素依次取出来插入到它前面的数的合适位置中intinsertNumber=r[i];//将要插入的数据赋值给变量insertNumberintj=i-1;while(j>=0&&insertNumber<r[j]){//要插入的元素小于第j个元素r[j+1]=r[j];//第j个元素向后移动--j;//比较插入数据和r[j]的大小,直到j为0}r[j+1]=insertNumber;//退出while循环,即插入的数据已经不小于r[j]了,这时插入数据插入到r[j]后面}for(inta:r){System.out.print(a+"");}}publicstaticvoidmain(Stringargs[]){inta[]={52,39,67,95,70,8,25};insertAlgorithm(a);}}
输出结果
8253952677095
“怎么将Java数组进行排序”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。