美文网首页
选择排序

选择排序

作者: 一个有想法的人 | 来源:发表于2018-04-10 22:39 被阅读0次

    分析:

    每次循环从数组中选一个最大的数。

    第一次从       0 到 len-1, 将最大的数和len-1进行交换位置
    第二次从       0 到 len-2, 将最大的数和len-2进行交换位置
    ...
    倒数第二次从    0 到 1, 将最大的数和1进行交换位置
    最后一次       0
    

    JAVA代码实现:

    // "static void main" must be defined in a public class.
    public class Main {
        
        public static void main(String[] args) {
            int[] arr = new int[100];
            for(int i=0;i<100;i++) {
                arr[i] = (int) (Math.random() * 100);
            }
            sort(arr);
            for(int i=0;i<100;i++){
                System.out.println(arr[i]);
            }
        }
        
        public static void sort(int[] arr) {
            int len = arr.length;
            for(int i=0;i<len;i++) {
                int max = arr[0];  //记住,这里每次是从0开始比较,不是i
                int maxIndex = 0;
                for(int j=0;j<len-i;j++) {
                    if(arr[j] > max) {
                        maxIndex = j;
                        max = arr[j];
                    }
                }
                arr[maxIndex] = arr[len - 1 - i];
                arr[len - 1 - i] = max;
            }
        }
        
    }
    
    

    相关文章

      网友评论

          本文标题:选择排序

          本文链接:https://www.haomeiwen.com/subject/hvdohftx.html