排序算法:选择排序

简介: 排序算法:选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

平均时间复杂度:O(n2)

空间复杂度:O(1) (用于交换和记录索引)

package cn.hncu;
import java.sql.Timestamp;
public class selectSort {
    public static void main(String[] args) {
        int[] a = new int[10000];
        for(int i=0;i<a.length;i++){
            a[i] = (int)(Math.random()*a.length);
        }
        long startTime = System.currentTimeMillis();//返回以毫秒为单位的当前时间。
        //1 选择排序
        selectSort1(a);
        print(a);
        long endTime = System.currentTimeMillis();//返回以毫秒为单位的当前时间。
        System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
    }
    private static void selectSort1(int[] a) {
        for(int i=0;i<a.length-1;i++){
            int k=i;
            for(int j=i;j<a.length;j++){
                if(a[k]>a[j]){
                    k=j;//找到最小的值为a[k]
                }
            }
            if(a[k]!=a[i]){//位运算交换值
                a[k]=a[k]^a[i];
                a[i]=a[k]^a[i];
                a[k]=a[k]^a[i];
            }
        }
    }
    private static void print(int[] a) {
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }
}


文章知识点与官方知识档案匹配,可进一步学习相关知识

算法技能树leetcode-排序算法493-翻转对4851 人正在系统学习中

目录
相关文章
|
5月前
|
搜索推荐 算法 C语言
C语言选择排序算法,从入门到精通只需1秒!
C语言选择排序算法,从入门到精通只需1秒!
|
2月前
|
搜索推荐 算法 Java
经典排序算法之-----选择排序(Java实现)
这篇文章通过Java代码示例详细解释了选择排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过选择排序对数组进行升序排列。
经典排序算法之-----选择排序(Java实现)
|
4月前
|
机器学习/深度学习 算法 搜索推荐
数据结构算法--2 冒泡排序,选择排序,插入排序
**基础排序算法包括冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换,逐步将最大值“冒”到末尾,平均时间复杂度为O(n^2)。选择排序每次找到剩余部分的最小值与未排序部分的第一个元素交换,同样具有O(n^2)的时间复杂度。插入排序则类似玩牌,将新元素插入到已排序部分的正确位置,也是O(n^2)复杂度。这些算法适用于小规模或部分有序的数据。**
|
4月前
|
搜索推荐
排序算法---选择排序-----详解&&代码
排序算法---选择排序-----详解&&代码
|
4月前
|
算法 搜索推荐
数据结构与算法-选择排序
数据结构与算法-选择排序
28 4
|
4月前
|
搜索推荐 算法
【C/排序算法】:堆排序和选择排序
【C/排序算法】:堆排序和选择排序
28 0
|
4月前
|
算法 搜索推荐 Java
JavaSE——算法(1/2):认识、冒泡排序、选择排序及优化(介绍、详细图解、代码)
JavaSE——算法(1/2):认识、冒泡排序、选择排序及优化(介绍、详细图解、代码)
29 0
|
4月前
|
存储 算法 C语言
数据结构和算法——堆排序(选择排序、思路图解、代码、时间复杂度、堆排序及代码)
数据结构和算法——堆排序(选择排序、思路图解、代码、时间复杂度、堆排序及代码)
30 0
|
5月前
|
存储 算法 搜索推荐
【数据结构与算法】:选择排序与快速排序
欢迎来到排序的第二个部分:选择排序与快速排序!
【数据结构与算法】:选择排序与快速排序
|
5月前
|
机器学习/深度学习 搜索推荐 算法
【排序算法】插入排序与选择排序详解
【排序算法】插入排序与选择排序详解
下一篇
无影云桌面