天天看点

选择排序—简单选择排序

选择排序的基本设计思想是:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列,直到全部排完为止。

算法步骤:

初始序列:

选择排序—简单选择排序

(1)、第一趟从arr[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为arr[k],交换arr[1]与arr[k]的位置。

选择排序—简单选择排序

(2)、第二趟从arr[2]开始,通过n-2次比较,从n-1个记录中选出关键字最小的记录,交换arr[2]与arr[k]

选择排序—简单选择排序
选择排序—简单选择排序

(3)、类此类推,经过n-1趟,排序完成。

算法实现:

public class SelectSort {

   public static    void sort(int [] arr) {

      int k=0;

      int temp=0;

      for(int i=0;i<arr.length-1;i++) {

         k=i;

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

            if(arr[k]>arr[j]) {

                k=j;

            }

         }

         if(k!=i) {

            //交换位置

            temp=arr[i];

            arr[i]=arr[k];

            arr[k]=temp;

      }

   }

   public static void main(String[] args) {

      int [] arr= {56,62,47,21,26,76,11,39,76,18,33};

      System.out.println("排序前:"+Arrays.toString(arr));

      sort(arr);

      System.out.println("排序后:"+Arrays.toString(arr));

}

排序前:[56, 62, 47, 21, 26, 76, 11, 39, 76, 18, 33]

排序后:[11, 18, 21, 26, 33, 39, 47, 56, 62, 76, 76]

上一篇: 选择排序
下一篇: 选择排序