1.1选择排序和冒泡排序的区别
    冒泡排序:是通过不断地交换位置来实现(先不断确定最右的数值)
    选择排序:是通过不断地确定最大值或最小值的下标的方法来进行实现(先不断的确定最左的数值)

    1.2选择排序升序排列
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    1. int [] nums = {3,5,2,1,7,9,10};
    2. System.out.println("排序之前:" + Arrays.toString(nums));
    3. upSort(nums);
    4. System.out.println("排序之后:" + Arrays.toString(nums));
    5. }
    6. /**
    7. * 升序
    8. * @param nums
    9. */
    10. public static void upSort(int[] nums) {
    11. // TODO Auto-generated method stub
    12. int lenth = nums.length;
    13. for(int i = 0; i < lenth -1; i ++) {//定义外层循环的次数
    14. int index = i;//先定义最小值的下标
    15. for(int j = i + 1; j < lenth; j ++) {
    16. if(nums[index] > nums[j]) {
    17. index = j;//确定最小值的下标
    18. }
    19. }
    20. //选择排序中,外层循环一次,交换一次位置
    21. if(index != i) {
    22. int temp = nums[i];
    23. nums[i] = nums[index];
    24. nums[index] = temp;
    25. }
    26. System.out.println("经过第" + (i + 1) + "选择后,数组为:" + Arrays.toString(nums));
    27. }
    28. }

    1.3选择排序降序排列

    /**
    * 降序
    * @param  nums 
    */
    public static void downSort(int[] nums) {
    // TODO Auto-generated method stub
    int lenth = nums.length;    
    for(int i = 0; i < lenth -1; i ++) {//定义外层循环的次数
    
            int index = i;//先定义最大值的下标
            for(int j = i + 1; j < lenth; j ++) {
    
                if(nums[index] < nums[j]) {
                    index = j;//确定最大值的下标
                }
            }
    
            //选择排序中,外层循环一次,交换一次位置
            if(index != i) {
                int temp = nums[i];
                nums[i] = nums[index];
                nums[index] = temp;
            }
    
            System.out.println("经过第" + (i + 1) + "选择后,数组为:" + Arrays.toString(nums));
    
        }
    }