选择排序-最简单的排序

选择排序

时间复杂度是O(n²) 

空间复杂度:O(1)

选择排序的核心思想:

两层循环

外层循环: 遍历数组,并假定一个最小数的下标,即下标为min = i.在内层循环之后,将array[i]和array[min]交换位置

内层循环: 遍历i之后的元素,比较array[i+1]和min,如果array[i+1]<array[i],将最小数的下标置为 i+1,经过一次遍历之后,最后的array[min] 就是本次取出来的最小的数

也就是说 在一次外层循环之后,就找到一个最小的数放在最前面,第二次循环找到第二小的数,以此类推!

伪代码实现:

 1 publci static void selectedSort(int[] array){
 2 
 3   for(int i=0;i<array.length;i++){
 4        
 5             int min = i;
 6             for(int j=i+1;j<array.length;j++){
 7                  if(array[j]<array[min]){
 8                 
 9                     min = j;
10                  }
11                
12             }
13              //将最小数交换到最前面
14             exchange(array,i,min);
15 
16     }
17 
18 }                    
原文地址:https://www.cnblogs.com/changeCode/p/10832421.html