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

    一、基本介绍

    ​ 冒泡排序是从带排序的数据中,按照某一排序规则(从大到小或者从小到大)选出某一元素,在依规定交换位置达到排序的目的。

    二、排序过程

    对数组[100 , 20 , 80 , 8 ] 从小到大排序过程如下:

    1. 第一趟排序
       - 从数组 [100 , 20 , 80 , 8 ] 第一个位置起找到最小值 8,将其放到第一个位置,得到数组 [8 , 20 , 80 , 100 ] 
    2. 第二趟排序
       - 从数组 [8 , 20 , 80 , 100 ]  第二个位置起找到最小值 20,将其放到第二个位置,得到排序后的数组 [8 , 20 , 80 , 100 ] 
    3. 第三趟排序
       - 从数组 [8 , 20 , 80 , 100 ]  第三个位置起找到最小值 80,将其放到第三个位置,得到排序后的数组 [8 , 20 , 80 , 100 ] 
    

    这个时候数组变排好序了。可以看出,当数组中的元素个数为 m 时,需要进行 m-1 趟排序。在每一次排序时就是找出该位置的最小值然后放到该位置。

    三、代码实现

    public static void selectSort(int[] arr) {
            if (arr == null || arr.length < 2) {//数组为空或者长度为1直接返回
                return;
            }
            int min = 0;
            int minIndex = 0;
            for (int i = 0; i < arr.length - 1; i++) {//当遍历次数为数组长度-1时,数组排序完成
                min = arr[i];//假设当前第一个值为最小值,临时变量存储最小值
                minIndex = i;//临时变量存储最小值的索引
                for (int j = i + 1; j < arr.length; j++) {//遍历从i+1个元素开始
                    if (min > arr[j]) {//当前min保存的不是最小值
                        min = arr[j];
                        minIndex = j;
                    }
                }
                if (minIndex != i) { //当前保存的值是最小值,不需要在进行赋值
                    arr[minIndex] = arr[i];
                    arr[i] = min;
                }
            }
        }
    
  • 相关阅读:
    easy ui 表单ajax和from两种提交数据方法
    easy ui 下拉级联效果 ,下拉框绑定数据select控件
    easy ui 下拉框绑定数据select控件
    easy ui 异步上传文件,跨域
    easy ui 菜单和按钮(Menu and Button)
    HTTP 错误 404.3
    EXTJS4.2 后台管理菜单栏
    HTML 背景图片自适应
    easy ui 表单元素input控件后面加说明(红色)
    EXTJS 4.2 添加滚动条
  • 原文地址:https://www.cnblogs.com/Mhang/p/12316380.html
Copyright © 2011-2022 走看看