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

    package DataStructure;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;

    /**
    * Created by robert on 2016/12/17.
    * 选择排序
    */
    public class SelectionSort {

    /**
    * 找最小元素下标
    * @param nums 数组
    * @param sIndex 开始下标
    * @return
    */
    public static int findMinimumIndex(int[] nums,int sIndex){
    int minimumIndex = sIndex;
    for(int i=sIndex+1;i<nums.length;i++){
    if(nums[minimumIndex]>nums[i]){
    minimumIndex=i;
    }
    }
    return minimumIndex;
    }

    public static void selectSort(int[] nums){
    int mininumIndex = 0;
    for(int i=0;i<nums.length-1;i++){
    mininumIndex = findMinimumIndex(nums,i);
    if(nums[mininumIndex]!=nums[i]){
    int temp = nums[i];
    nums[i] = nums[mininumIndex];
    nums[mininumIndex] = temp;
    }
    }
    }

    /**
    * 生成乱序数组
    * @param n
    * @return
    */
    private static int[] createArr(int n){
    List<Integer> list = new ArrayList<Integer>(n);
    for(int i=1;i<=n;i++){
    list.add(i);
    }
    Collections.shuffle(list);
    int[] nums = new int[n];
    for(int i=0;i<nums.length;i++){
    nums[i] = list.get(i);
    }
    System.out.println("初始化数组结束");
    // printArr(nums);
    return nums;
    }

    private static void printArr(int[] numArr) {
    for(int num:numArr){
    System.out.print(num+",");
    }
    System.out.println();
    }

    public static void main(String[] args) {
    int[] numArr = createArr(10000);
    long startTime = System.nanoTime();
    selectSort(numArr);
    System.out.println("共计耗时:"+String.valueOf(System.nanoTime()-startTime));
    // printArr(numArr);
    }

    }
    不管数组中元素的初始化顺序是什么,都是O(n²)
    10000个数字排序需要耗时29284920纳秒
  • 相关阅读:
    Hibernate学习(2)- hibernate.cfg.xml详解
    Hibernate学习(1)- 初识
    linux(centos6) 常用操作
    linux(centos6) 下安装 postgresql-9.3.1.tar.gz
    struts2 值栈分析
    struts2 paramsPrepareParamsStack拦截器简化代码(源码分析)
    idea 配置maven
    idea 使用github
    idea 配置svn
    idea 配置tomcat
  • 原文地址:https://www.cnblogs.com/mengjianzhou/p/6189640.html
Copyright © 2011-2022 走看看