算法学习笔记之选择排序算法

简介: 算法学习笔记之选择排序算法

算法学习笔记之选择排序算法

选择排序算法原理


  • 首先找到数组中最小的元素
  • 其次将最小的元素和数组中第一个元素进行交换
  • 再次,在剩下的元素中找到最小元素,将它与数组中第二个元素进行交换。如此反复,直到将整个数组排序。


选择排序算法 Java 实现

package top.simba1949;
/**
 * 选择排序算法——简单选择排序算法
 *
 * 简单选择排序算法原理
 *     1. 首先找到数组中最小的元素
 *     2. 其次将最小的元素和数组中第一个元素进行交换
 *     3. 再次,在剩下的元素中找到最小元素,将它与数组中第二个元素进行交换。如此反复,直到将整个数组排序。
 *
 * @author SIMBA1949
 * @date 2019/6/29 7:41
 */
public class SelectSort {
    public static void main(String[] args) {
        int[] intArr = {1, 9, 90, 20, 30, 66, 34, 55};
        selectSortImpl(intArr);
        for (int i : intArr) {
            System.out.print(i + "\t");
        }
    }
    public static void selectSortImpl(int[] arr){
        // 健壮性判断
        if (null == arr || arr.length < 2){
            return;
        }
        // 控制范围
        for (int minIndex = 0; minIndex < arr.length - 1; minIndex++) {
            for (int i = minIndex + 1; i < arr.length; i++){
                // 如果 minIndex 位置上的数不是最小的数,数据交换
                if (arr[minIndex] > arr[i]){
                    int temp = arr[minIndex];
                    arr[minIndex] = arr[i];
                    arr[i] = temp;
                }
            }
        }
    }
}



目录
相关文章
|
1月前
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
23 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
5月前
|
算法 搜索推荐 测试技术
【调度算法】快速非支配排序算法
【调度算法】快速非支配排序算法
50 3
|
1月前
|
搜索推荐 算法
数据结构与算法学习十四:常用排序算法总结和对比
关于常用排序算法的总结和对比,包括稳定性、内排序、外排序、时间复杂度和空间复杂度等术语的解释。
19 0
数据结构与算法学习十四:常用排序算法总结和对比
|
1月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
16 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
1月前
|
搜索推荐 Java Go
深入了解选择排序算法
深入了解选择排序算法
20 4
|
1月前
|
机器学习/深度学习 搜索推荐 算法
探索数据结构:初入算法之经典排序算法
探索数据结构:初入算法之经典排序算法
|
1月前
|
搜索推荐 算法
【排序算法(一)】——插入排序,选择排序 —> 深层解析
【排序算法(一)】——插入排序,选择排序 —> 深层解析
|
1月前
|
算法 Python
Python算法编程:冒泡排序、选择排序、快速排序
Python算法编程:冒泡排序、选择排序、快速排序
|
3月前
|
搜索推荐 算法 Java
经典排序算法之-----选择排序(Java实现)
这篇文章通过Java代码示例详细解释了选择排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过选择排序对数组进行升序排列。
经典排序算法之-----选择排序(Java实现)
|
5月前
|
机器学习/深度学习 算法 搜索推荐
数据结构算法--2 冒泡排序,选择排序,插入排序
**基础排序算法包括冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换,逐步将最大值“冒”到末尾,平均时间复杂度为O(n^2)。选择排序每次找到剩余部分的最小值与未排序部分的第一个元素交换,同样具有O(n^2)的时间复杂度。插入排序则类似玩牌,将新元素插入到已排序部分的正确位置,也是O(n^2)复杂度。这些算法适用于小规模或部分有序的数据。**