Java数组排序 心已赠人 2022-02-19 05:52 214阅读 0赞 # Java数组排序:Java sort()方法 # Arrays.sort(scores); # Java数组排序:Java冒泡排序(Bubble Sort)法 # System.out.println("通过冒泡排序方法对数组进行排序:"); for(int i=0;i<score.length-1;i++) { //比较相邻两个元素,较大的数往后冒泡 for (int j=0;j<score.length-1-i;j++) { if(score[j]>score[j+1]) { double temp=score[j+1]; //把第一个元素值保存到临时变量中 score[j+1]=score[j]; //把第二个元素值转移到第一个元素变量中 score[j]=temp; //把临时变量(第一个元素的原值)保存到第二个元素中 } System.out.print(score[j]+ " "); //对排序后的数组元素进行输出 } } ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODI5MzQ1Mw_size_16_color_FFFFFF_t_70][] # Java数组排序:Java快速排序(Quicksort)法 # (1) 声明静态的 getMiddle() 方法,该方法需要返回一个 int 类型的参数值,在该方法中传入 3 个参数。代码如下: public static int getMiddle(int[] list,int low,int high) { int tmp=list[low]; //数组的第一个值作为中轴(分界点或关键数据) while(low<high) { while(low<high&&list[high]>tmp) { high--; } list[low]=list[high]; //比中轴小的记录移到低端 while(low<high&&list[low]<tmp) { low++; } list[high]=list[low]; //比中轴大的记录移到高端 } list[low]=tmp; //中轴记录到尾 return low; //返回中轴的位置 } (2) 创建静态的 unckSort() 方法,在该方法中判断 low 参数是否小于 high 参数,如果是则调用 getMiddle() 方法,将数组一分为二,并且调用自身的方法进行递归排序。代码如下: public static void unckSort(int[] list,int low,int high) { if(low<high) { int middle=getMiddle(list,low,high); //将list数组一分为二 unckSort(list,low,middle-1); //对低字表进行递归排序 unckSort(list,middle+1,high); //对高字表进行递归排序 } } (3) 声明静态的 quick() 方法,在该方法中判断传入的数组是否为空,如果不为空,则调用 unckSort() 方法进行排序。代码如下: public static void quick(int[] str) { if(str.length>0) { //查看数组是否为空 unckSort(str,0,str.length-1); } } # Java数组排序:Java选择排序法 # for(int i=1;i<number.length;i++) { index=0; for(int j=1;j<=number.length-i;j++) { if(number[j]>number[index]) { index=j; //查找最大值 } } end=number[index]+" "+end; //定位已排好的数组元素 int temp=number[number.length-i]; number[number.length-1]=number[index]; number[index]=temp; System.out.print("【"); for(int j=0;j<number.length-i;j++) { System.out.print(number[j]+" "); } System.out.print("】"+end); } # Java数组排序:Java直接插入法 # ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODI5MzQ1Mw_size_16_color_FFFFFF_t_70 1][] public static void main(String[] args) { int[] number={13,15,24,99,4,1}; System.out.println("排序前:"); for(int val:number) { //遍历数组元素 System.out.print(val+" "); //输出数组元素 } int temp,j; for(int i=1;i<number.length;i++) { temp=number[i]; for(j=i-1;j>=0&&number[j]>temp;j--) { number[j+1]=number[j]; } number[j+1]=temp; } System.out.println("\n排序后:"); for(int val:number) { //遍历数组元素 System.out.print(val+" "); //输出数组元素 } } [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODI5MzQ1Mw_size_16_color_FFFFFF_t_70]: /images/20220219/0cd1055d9c314d25ac6506e2ee983ac7.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODI5MzQ1Mw_size_16_color_FFFFFF_t_70 1]: /images/20220219/bedcd346fac9447bba1db4ca5c32b1cb.png
还没有评论,来说两句吧...