选择排序算法(详解)

    xiaoxiao2022-07-12  150

    //选择排序算法(详解) // 第一趟排序:初始数据 5,2,8,4,9,1 // 最小数据 1,把1放在首位,也就是说和5互换位置 // 1,2,8,4,9,5 // // 第二趟排序:初始数据 2,8,4,9,5 // 除去1之外,剩下里面排序 // 1,2,8,4,9,5 // // 第二趟排序:初始数据 8,4,9,5 // 除去1,2之外,剩下里面排序 // 1,2,4,8,9,5

    public void run5(){ int[] arr = {5,2,8,4,9,1}; System.out.println("交换之前"); // for(int i=0;i<arr.length;i++){ // System.out.print(arr[i]+"\t"); // } // System.out.println(); for (int i : arr) {//作用和上方for循环一致 System.out.print(i+"\t"); } //选择排序 //做第i趟排序 for(int i=0;i<arr.length-1;i++){ //默认一个值,是最大或者最小值 int k = i; //选最小的记录 for(int j=k+1;j<arr.length;j++){ //1 0 if(arr[j]<arr[k]){ k = j;//记下目前找到的最小的值所在的位置 } } //在内层循环结束后 //也就是找到本轮循环的最小数后,在进行交换 if(i != k){ int temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } System.out.println(); System.out.println("交换后"); for (int i : arr) { System.out.print(i+"\t"); } }
    最新回复(0)