首页 > 编程语言 > 详细

选择排序-最简单的排序

时间:2019-05-08 16:25:51      阅读:118      评论:0      收藏:0      [点我收藏+]

选择排序

时间复杂度是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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!