选择排序(Java版)

选择排序是每次循环都从未被选择的数组中选取一个最小值放在数组前面。第一次循环将全部数组中的最小值放在下标为0的位置,此时,下标为0的数被视为已被选择数组;第二次循环将从未被选择的数组从选出第二最小值放在下标为1的位置……由此循环到数组中不包含未被选择的数为止。

归并排序的最好、最坏和平均时间复杂度都是O(n^2)。

/**
 * Created by lkmc2 on 2018/1/8.
 */
public class SelectSort {
    public static void selectSort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            //标签当前下标为最小值下标
            int min = i;

            //从i下标的后一位到数组最后一位选出最小值的下标
            for (int j = i + 1; j < array.length; j++)
                if (array[j] < array[min])
                    min = j;
            //将最小值的下标与i位置的值交换
            int temp = array[i];
            array[i] = array[min];
            array[min] = temp;
        }
    }

    public static void main(String[] args) {
        int[] array = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
        selectSort(array);

        for (int num : array) {
            System.out.print(num + " ");
        }
    }
}
运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 思路 原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素...
    Skymiles阅读 255评论 0 1
  • 冒泡排序 冒泡排序相对来说是较为简单的一种排序,它的思想就是在每一次循环中比较相邻的两个数,通过交换的方式,将最小...
    陌上疏影凉阅读 603评论 0 3
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 小亖除了在已既定好的职业发展之外,一直寻找自己可以为其他人服务的意义,最近小亖找到了--中医。 其实身边也有朋友在...
    亖曦阅读 186评论 0 2
  • 起来吧!懒惰的家伙 虽然你最后什么也没留下 你可以做一名发烧友 爱音乐 爱自己 爱诗歌 爱你所爱 不要将自己关闭 ...
    林幻闲阅读 160评论 0 1