选择排序(Selection Sort)是一种简单直观的排序算法。首先在未排序序列中找到最小元素,存放在排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

算法描述:

1,从待排序序列中,找到最小的元素;起始假定第一个元素为最小。

2,如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换。

3,从余下的元素中,找出最小的元素,重复1,2步,直至排序结束。

动图演示:

代码实现:

public class Sort{
       public static void swap(int[] arr,int i,int j){
              int temp=arr[i];
              arr[i]=arr[j];
              arr[j]=temp;
       }

       public static void printArr(int[] arr){
              for(int i:arr){
                  System.out.print(i+" ");
              }
       }

       public static void selectionSort(int[] arr){
              if(arr==null){
                   return;
              }
              int min;
              for(int i=0;i<arr.length;i++){
                   min=i;
                   for(int j=i+1;j<arr.length;j++){
                       if(arr[min]>arr[j]){
                            min=j;
                       }
                   }
               swap(arr,i,min);
               }
         }

         public static void main(String[] args){
               int[] arr=new int[]{3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};
               selectionSort(arr);
               printArr(arr);
         }
}

 

 posted on 2018-07-17 19:28  会飞的金鱼  阅读(138)  评论(0)    收藏  举报