美文网首页
排序算法-选择排序

排序算法-选择排序

作者: 我有一只碗 | 来源:发表于2018-02-02 14:02 被阅读0次

我们都知道排序算法最好的时间复杂度为O(nlog n),但是很多的排序方法时间复杂度为O(n^2)。
那我们为什么要学习O(n^2) 的排序算法呢,直接学最好的不就行了。但是复杂度为O(n^2)的算法是最直观,最容易理解的。先解决,再优化的思想是一种非常重要的解决问题的手段。所以我们需要学习简单的算法,然后逐步求精实现高效率的算法。

选择排序:
先从数组中找到最小的元素,放在第一个位置,然后再从第二个往后找,找到最小的元素,放在第二个位置,继续从第三个位置开始找,找到最小的元素,放在第三个位置...

    // 选择排序法
    public static void selectionSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            // 先假定i为当前趟排序中最小的元素的下标
            int minIndex = i;

            // 找到未排序数组中最小元素的下标并更新minIndex
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }

            // 与i所在的元素交换
            int swaper = arr[minIndex];
            arr[minIndex] = arr[i];
            arr[i] = swaper;
        }
    }

相关文章

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 算法4:插入排序和选择排序算法的比较

    排序算法列表电梯: 选择排序算法:详见 《算法4》2.1 - 选择排序算法(Selection Sort), Py...

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • PHP常用算法

    基于选择的排序算法 常见的基于选择的排序算法有:冒泡排序、插入排序、选择排序、归并排序和快速排序,我们在选在排序算...

  • 算法and数据结构

    算法 冒泡排序 选择排序 计数排序

  • 基础排序算法总结

    排序算法分为内部排序和外部排序,而我们经常说的基础排序算法,都是内部排序算法。包括冒泡排序,选择排序,插入排序,快...

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

  • 《算法4》2.1 - 插入排序算法(Insertion Sort

    排序算法列表电梯: **选择排序算法:详见 Selection Sort ** 插入排序算法(Insertion ...

  • 排序算法

    排序算法 排序是最基本的算法之一,常见的排序算法有插入排序、希尔排序、选择排序、冒泡排序、堆排序、归并排序及快速排...

  • 面试算法知识梳理(12) - 二叉树算法第二部分

    面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...

网友评论

      本文标题:排序算法-选择排序

      本文链接:https://www.haomeiwen.com/subject/jqvaaxtx.html