算法3-排序-简单选择排序

基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;

然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把最小的元素放到最前面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择。举个栗子,对5,3,8,6,4这个无序序列进行简单选择排序,首先要选择5以外的最小数来和5交换,也就是选择3和5交换,一次排序后就变成了3,5,8,6,4.对剩下的序列一次进行选择和交换,最终就会得到一个有序序列。其实选择排序可以看成冒泡排序的优化,因为其目的相同,只是选择排序只有在确定了最小数的前提下才进行交换,大大减少了交换的次数。选择排序的时间复杂度为O(n^2)

publicclass selectSort {  
  
    public selectSort(){  
  
       int a[]={1,54,6,3,78,34,12,45};  
  
       int position=0;  
  
       for(int i=0;i<a.length;i++){  
  
             
  
           int j=i+1;  
  
           position=i;  
  
           int temp=a[i];  
  
           for(;j<a.length;j++){  
  
           if(a[j]<temp){  
  
              temp=a[j];  
  
              position=j;  
  
           }  
  
           }  
  
           a[position]=a[i];  
  
           a[i]=temp;  
  
       }  
  
       for(int i=0;i<a.length;i++)  
  
           System.out.println(a[i]);  
  
    }  
  
}  

  

posted @ 2018-01-17 16:57  My Way!  阅读(269)  评论(0编辑  收藏  举报