选择排序

本文采用Java书写选择排序,其他语言类似可以借鉴着写
  • 思想:从待测数据中找到最小(大)值放在左端,然后再从剩下的待测数据中依次重复执行此操作。每次都选择最小的元素,确定个元素的位置。因此被称为选择排序。
  • 效果图:下面效果图可形象表现出选择排序的过程。

算法的复杂度和稳定性

  • 稳定性:
    选择排序值相等时不交换,因此具有稳定性
  • 复杂度:
    这里仅说明时间复杂度为:O(N^2)

代码实现

/*** @Description:    选择排序* @ProjectNmae: gitTest* @PackageName: Sort* @ClassName: SelectionSort* @Author: Y-peak* @Date: 2021.08.26 09:07   星期四*/public class SelectionSort {public static void selectionSort(int[] arr){if(arr==null||arr.length<2)return;for (int i = 0; i < arr.length - 1; i++) {int minIndex = i;for (int j = i+1; j < arr.length; j++) {//minIndex = arr[j]<arr[minIndex]?j:minIndex;if (arr[j] < arr[minIndex])minIndex = j;}swap(arr,i, minIndex);}}public static void swap(int[] arr, int i, int j){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}
}

十大排序算法之选择排序相关推荐

  1. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  2. 堆排序算法c语言筛选法,【排序】排序算法之选择排序

    排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...

  3. 【排序算法】选择排序(C语言)

    [排序算法]-- 选择排序 目录 一.选择排序的原理 二.选择排序的代码实现 三.选择排序的优化 1. 优化思路 2. 排序优化后问题 3. 优化代码的实现 四.选择排序的效率 一.选择排序的原理 ​ ...

  4. 排序---初级排序算法(选择排序、插入排序和希尔排序)

    写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera  Algorithms Part1&2 本文 ...

  5. 排序算法 | 直接选择排序,算法的图解、实现、复杂度和稳定性分析

    排序算法 | 直接选择排序,算法的图解.实现.复杂度和稳定性分析 目录 1.直接选择排序的原理 2.图解直接选择排序 3.算法代码实现 4.算法复杂度分析.稳定性分析 直接选择排序 1.直接选择排序的 ...

  6. 【排序算法】选择排序(Selection sort)

    选择排序(Selection sort)是一种简单直观的排序算法. 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置:接着,再从剩余未排序的元 ...

  7. 排序算法(3)选择排序

    排序算法(3)选择排序 原理:思想:两个变种(1)单侧选择:在一个无序数组中选择出每一轮中最大值(或最小值)元素,放到最前面或最后面(升序)(2)双向选择:在一个无序数组中选择出每一轮中最值元素,然后 ...

  8. Java经典排序算法:选择排序,动图演示排序过程

    Java经典排序算法:选择排序,动图演示排序过程 示意动图: public class Main {public static void main(String[] args) {new Main() ...

  9. 选择排序算法流程图_常用排序算法之选择排序

    前两天给大家分享了冒泡排序和插入排序(没关注的同学,可以关注后查看历史消息),今天继续给大家分享另一种常用的排序算法--选择排序. 选择排序 选择排序和插入排序很相似,也区分已排序区间和未排序区间,选 ...

  10. 排序算法之选择排序(简单选择排序、堆排序)

    选择排序(简单选择排序.堆排序) 选择排序 简单选择排序 概念 算法实现 堆排序 概念 算法实现 后续 选择排序 选择排序的基本思想是:每一趟在待排序元素中选取关键字最小(或最大)的元素加入有序子序列 ...

最新文章

  1. 【Google Play】Google Play 开放式测试 ( 简介 | 发布开放式测试版本 )
  2. java基础---集合之HashSet
  3. 2013 ACM/ICPC 长沙网络赛J题
  4. datatable对两个csv的join操作
  5. 关于RabbitMQ以及RabbitMQ和Spring的整合
  6. Bootstrap 字体图标使用案例
  7. 【ElasticSearch】如何使用 ElasticSearch 搜索单词的一部分 模糊搜索 正则匹配 前缀匹配
  8. 设计灵感|海报设计常见中看起来很高级的文字排版
  9. java报错信息怎么看_AE-E3D插件无效或提示OPENGL E3D Debug等错误报错信息怎么办?...
  10. Java IO(input output)流二
  11. 交换机集群管理(锐捷)
  12. EXCEL生成SQL脚本
  13. 2021-03-03
  14. 毕业生写论文必备!!超详细讲解参考文献格式
  15. 作业四:结对编程项目--四则运算
  16. 修复 Key is stored in legacy trusted.gpg keyring
  17. 文件排版2.2 (python)
  18. “GANs之父”Goodfellow 38分钟视频亲授:如何完善生成对抗网络?(上)
  19. LeetCode知识点总结 - 347
  20. leetcode908

热门文章

  1. andorid 第五天 了解xml与应用程序之间的关系
  2. Web服务器漏洞和安全
  3. 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - H. 四平方和
  4. 2014/School_C_C++_A/6/“数独”游戏
  5. PYTHON如何在内存中生成ZIP文件
  6. 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - F. 寒假作业
  7. 如何将本地项目上传至GitHub
  8. 【Linux】一步一步学Linux——cut命令(44)
  9. 【STM32】 keil软件工具--工程目标选项配置(下)
  10. 【Linux系统编程应用】 Linux输入子系统(二)