前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java中的排序除了冒泡以来, 再给出一种方法, 举例说明

java中的排序除了冒泡以来, 再给出一种方法, 举例说明

作者头像
马克java社区
修改2021-03-10 09:39:18
2710
修改2021-03-10 09:39:18
举报
文章被收录于专栏:java大数据

9.5 排序:   有一种排序的方法,非常好理解,详见本题的步骤,先找出最大值和最小值,把最小值打印出来后,把它存在另一个数组b当中,再删除此最小值,之后再来一次找出最小值,打印出最小值以后,再把它存在另一个数组b当中,再删除此最小值,这样循环往复,直到做完,你就会发觉,你已经把排了序数放在b数组当中了,而这里的彻底删除最小值的方法就是用比最大值还大一的数来取代最小值。(自己想想为什么?)参考后面的答案你会发觉,按照下面的四步,你已经把一个数组排序了。 i)make a method called getMin to find the minimal value of the array. ii)make a method called getMax to find the maximum value of the array. iii) replace the minimal value with the maximum+1. iiii) sort an array.

public class Test {

    static int minPosition=0;//用这个全局变量来记录最小数的位置索引,

    public static void main(String[] args) {

        int[] a = {6, 12, 7, 23, 4};

        int max = getMax(a);

        int[] b = new int[a.length];

        for (int j = 0; j < a.length; j++) {

            int min = getMin(a); 

 /*把a数组当中最小的值,马克-to-win给替换成max+1,这样就相当于把原来的最小值从这个数组当中彻底清除掉了。整个循环做完,a数组就彻底废了。*/

            a[minPosition] = max + 1; 

            minPosition=0;//把minPosition重置一下, 因为最小的位置已经不是这了。

            b[j] = min;//用此方法a数组当中的数就一个一个从小到大捣到b数组当中了

        }

        for (int j = 0; j < a.length; j++) System.out.println(b[j]);

    }

    static int getMax(int[] a) { 

       int max=a[0];

       for (int i = 1; i < a.length ; i++) {

           if(max<a[i])

           {

               max=a[i];

           }

       }        

       return max;

    }

    static int getMin(int[] a) { 

        int min=a[0];

        for (int i = 1; i < a.length ; i++) {

            if(min>a[i])

            {

                min=a[i];

                minPosition=i;//用这个全局变量来记录最小数的位置索引,

            }

        }        

        return min;

    }

}

更多请见:https://blog.csdn.net/qq_44639795/article/details/103142934

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档