选择排序

/**

 * @author @liugang

 * 简单选择排序的思想

 * 每遍历未排序部分一次都产生一个最小值,并将最小值移到数组的前端

 */

public class Simpleselectionsort {

    private static int count = 0;

 

    public static void printAll(int[] a) {

       System.out.println("第" + (++count) + "次:");

       for (int i = 0; i < a.length; i++) {

 

           System.out.print(a[i] + " ");

       }

       System.out.println();

    }

 

    public static void Sort(int[] data) {

       for(int i=0;i<data.length;i++){

           int minindex=i;

          

           for(int j=i+1;j<data.length;j++){

              //遍历未排序部分产生一个最小值

              if(data[j]<data[minindex]){

                  //记录最小值的角标

                  minindex=j;

              }

             

           }

           //将得到的最小值移到数组的前端

           swap(data,minindex,i);

          

          

           printAll(data);

          

       }

 

    }

 

    public static void swap(int[] data, int minindex, int i) {

       int temp =0;

       temp =data[minindex];

       data[minindex]=data[i];

       data[i]=temp;

      

    }

 

    public static void main(String args[]) {

 

       int[] data = new int[10];

       for (int i = 0; i < data.length; i++) {

           data[i] = (int) (Math.random() * 100);

       }

       System.out.println("排序之前:");

       for (int i : data) {

           System.out.print(i + " ");

       }

       System.out.println();

       System.out.println("排序之后:");

       Sort(data);

    }

 

原文地址:https://www.cnblogs.com/jinzhengquan/p/1980261.html