zoukankan      html  css  js  c++  java
  • 选择排序

    基本思想

    选择排序首先遍历列表,并且将最小的元素与第一个元素进行比较,随后遍历剩余的元素并将次小的元素与第二个元素进行比较,依次类推。选择排序是和冒泡排序差不多的一种排序。和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,才会发生交换。

    代码实现

    package com.csdhsm.sort;
    
    /** 
     * @Title: SelectSort.java
     * @Package: com.csdhsm.sort
     * @Description 选择排序
     * @author Han
     * @date 2016-4-3 下午3:44:33 
     * @version V1.0
     */ 
          
    public class SelectSort {
        
        public void sort(int[] arr,int len){
    
            
            for(int i=0;i<len-1;i++){
                
                //记录最小元素的下标
                int min = i;
                
                for(int j=i+1;j<len;j++){
                    
                    if(arr[j] < arr[min]){
                        
                        min = j;
                    }
                }
                /**
                 * 将最小值交换至前端
                 */
                int temp = arr[i];
                arr[i] = arr[min];
                arr[min] = temp;
            }
        }
    }

    效率分析

    不稳定

    空间复杂度:O(1)

    时间复杂度:O(n2)

    最坏情况:O(n2) 第一个元素为最大元素,其余元素正序,需要交换n-1个元素(如:4 3 2 1)

    最好情况:O(n2) 正序,不需要交换元素

  • 相关阅读:
    洛谷 P1141 01迷宫
    洛谷 p1443
    setw
    Fliptile
    追牛
    Dungeon Master
    vim的一些基本操作
    洛谷 p1309 瑞士轮
    洛谷 p1090 合并果子
    selenium2 WebDriver 在asp.net项目中的应用
  • 原文地址:https://www.cnblogs.com/a294098789/p/5349986.html
Copyright © 2011-2022 走看看