黑马程序员技术交流社区

标题: 练习十七:选择排序 [打印本页]

作者: maxwell247    时间: 2015-9-26 21:22
标题: 练习十七:选择排序
本帖最后由 maxwell247 于 2015-9-26 22:09 编辑

从网上找到一份编程练习题,我决定将里面的题目全都做一遍。

---
/*
         题目:对10个数进行排序  
*/

/*
        分析:排序的算法有好多种。冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,桶排序,快速排序,基数排序,归并....
        然而,我只会两种。这里就用选择排序了。看来要尽快把其他排序学会。或者把Arrays.sort()的源码看懂。
        对于数组中的数据,使用Random生成10个1000之间的整数。
*/

import java.util.Random;

class SelectSortDemo {
        public static void main(String[] args) {
                int[] arr=new int[10];
                Random random=new Random();
                for (int i=0; i<10; i++){
                        arr=random.nextInt(1000)+1; //生成 1-1000之间的随机数
                }
                System.out.println("------------排序前-----------");
                printArray(arr);
                SelectSort(arr);
                System.out.println("------------排序后-----------");
                printArray(arr);
               
        }

        public static void SelectSort(int[] arr){
                for (int i=0; i<arr.length-1; i++){
                        for(int j=i+1; j<arr.length; j++){
                                if(arr>arr[j]){
                                        swap(arr,i,j);
                                }
                        }
                }
        }

        private static void swap(int[] arr,int i,int j){
                int temp=arr;
                arr=arr[j];
                arr[j]=temp;
        }

        public static void printArray(int[] arr){
                for(int element:arr){
                        System.out.print(element+"\t");
                }
                System.out.println();
        }
}

/*
        输出结果

------------排序前-----------
736     19      579     928     309     683     275     488     627     724

------------排序后-----------
19      275     309     488     579     627     683     724     736     928

*/


论坛发代码有问题。  自动识别  a 【i】变成斜体了。 如果你复制代码不能通过的,是正常的。



作者: 向阳啊    时间: 2015-9-26 21:56
顶个。。。慢慢研究研究




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