黑马程序员技术交流社区

标题: 关于数组排序问题的延伸 [打印本页]

作者: lucy198921    时间: 2013-3-22 21:14
标题: 关于数组排序问题的延伸
本帖最后由 lucy198921 于 2013-3-23 19:05 编辑



下面这个是无序的由小到大的排列,    如果排列是从大到小的降序排列需要哪些地方做更改呢?

class ArrayDemo4
        {
        public static void selectSort(int [] arr)
                {
                        for  (int x= 0;x<arr.length-1;x++)
                        {
                        for(int y=x+1;y<arr.length;y++)
                        {
                        if (arr [x] > arr[y] )
                        {
                        int temp= arr [x] ;
                        arr [x]  =arr [y] ;
                        arr [y] = temp ;
                        }
                        
                        }        
                        }
                }
                public static void main (String [ ] args)
                {
                int [ ] arr={4,1,6,6,8,5,3,2};
                printArr(arr);
                selectSort(arr);
               
                printArr(arr);
                }

                public static void printArr(int [ ] arr)
                {
                        System.out.print("[ ");
                        for (int x=0;x<arr.length;x++)  //0 1 2 3 length=4
                        {
               
                        if (x==arr.length-1 )  //4-1=3
                        System.out.print(arr[x]);
                        else
                        System.out.print(arr[x]+", ");
                        }
                        System.out.println(" ]");
                        
                 }
        }
               


作者: 徐鸿燕    时间: 2013-3-22 21:24
  这个还是自己思考来的好,既然升序会了,降序的话相反一下就出来了。
  实践来的最重要,也许你过几分钟你就想出来了,加油{:soso_e179:}
作者: 葛伟    时间: 2013-3-22 21:33
    if (arr [x] < arr[y] )-----------------------------只需要改成小于一切OK了
                        {
                        int temp= arr [x] ;
                        arr [x]  =arr [y] ;
                        arr [y] = temp ;

作者: 张文星    时间: 2013-3-22 21:48
把大于换成小于就好了~~~
作者: lucy198921    时间: 2013-3-22 21:55
import java.util.*;
class ArryDemo2
{
        public static void main(String[] args)
        {
                int [] arr ={32,31,5,1,99,34,2};
                Arrays.sort(arr );  //开发
                printArr(arr);
        }
        public static void printArr(int[] arr)
        {
                        System.out.print("[");
                        //for (int x=arr.length-1;x>=0 ;x-- )   //0 1 2 3 length=4
                        {
                                //当循环量x到达数组最大索引,不打印逗号
                                if(x==0 )  //4-1=3
                                System.out.print(arr [x]);
                                else
                                System.out.print(arr[x]+", ");

                          }
                          System.out.println("]");
        }
               
}


我测试通过了冒泡排序的降序排列.  





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