黑马程序员技术交流社区

标题: 选择排序法改进 [打印本页]

作者: 开弓没有回头箭    时间: 2015-6-9 12:00
标题: 选择排序法改进
        public static void selectSort(int[] arr)
        {

                int min=0;
                for (int x=0; x<arr.length-1 ; x++)
                {
                        min =x;//min存储遍历中最小值得坐标

                        for(int y=x+1; y<arr.length; y++)
                        {
                                if(arr[min]>arr[y])//遍历中遇到比角标min中的数更小的,min指向该角标
                                {
                                        min=y;
                                }
                        }
                        if(min!=x)//min中值改变了,则将角标min中值与角标x值交换

                        {
                                int temp = arr[x];
                                arr[x] = arr[min];
                                arr[min]= temp;       
                        }       
                }
        }
该方法在遍历查找最小值是不会进行交换,只有当找到最小值后,才产生交换,减少了交换次数,从而得到优化

作者: RockLee    时间: 2015-6-9 13:49
总结的很好:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2