zoukankan      html  css  js  c++  java
  • 选择排序-最简单的排序

    选择排序

    时间复杂度是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 }                    
  • 相关阅读:
    11月20日
    11月19日
    11月26日
    11月25日
    生活有感(一)
    c# word 删除指定内容
    mysql insert语句
    c# 删除word文档中某一页
    mysql 相同表结构拷贝数据
    调试再次出错
  • 原文地址:https://www.cnblogs.com/changeCode/p/10832421.html
Copyright © 2011-2022 走看看