十大排序算法之选择排序
选择排序
本文采用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;}
}
十大排序算法之选择排序相关推荐
- 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试
案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...
- 堆排序算法c语言筛选法,【排序】排序算法之选择排序
排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...
- 【排序算法】选择排序(C语言)
[排序算法]-- 选择排序 目录 一.选择排序的原理 二.选择排序的代码实现 三.选择排序的优化 1. 优化思路 2. 排序优化后问题 3. 优化代码的实现 四.选择排序的效率 一.选择排序的原理 ...
- 排序---初级排序算法(选择排序、插入排序和希尔排序)
写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera Algorithms Part1&2 本文 ...
- 排序算法 | 直接选择排序,算法的图解、实现、复杂度和稳定性分析
排序算法 | 直接选择排序,算法的图解.实现.复杂度和稳定性分析 目录 1.直接选择排序的原理 2.图解直接选择排序 3.算法代码实现 4.算法复杂度分析.稳定性分析 直接选择排序 1.直接选择排序的 ...
- 【排序算法】选择排序(Selection sort)
选择排序(Selection sort)是一种简单直观的排序算法. 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置:接着,再从剩余未排序的元 ...
- 排序算法(3)选择排序
排序算法(3)选择排序 原理:思想:两个变种(1)单侧选择:在一个无序数组中选择出每一轮中最大值(或最小值)元素,放到最前面或最后面(升序)(2)双向选择:在一个无序数组中选择出每一轮中最值元素,然后 ...
- Java经典排序算法:选择排序,动图演示排序过程
Java经典排序算法:选择排序,动图演示排序过程 示意动图: public class Main {public static void main(String[] args) {new Main() ...
- 选择排序算法流程图_常用排序算法之选择排序
前两天给大家分享了冒泡排序和插入排序(没关注的同学,可以关注后查看历史消息),今天继续给大家分享另一种常用的排序算法--选择排序. 选择排序 选择排序和插入排序很相似,也区分已排序区间和未排序区间,选 ...
- 排序算法之选择排序(简单选择排序、堆排序)
选择排序(简单选择排序.堆排序) 选择排序 简单选择排序 概念 算法实现 堆排序 概念 算法实现 后续 选择排序 选择排序的基本思想是:每一趟在待排序元素中选取关键字最小(或最大)的元素加入有序子序列 ...
最新文章
- 【Google Play】Google Play 开放式测试 ( 简介 | 发布开放式测试版本 )
- java基础---集合之HashSet
- 2013 ACM/ICPC 长沙网络赛J题
- datatable对两个csv的join操作
- 关于RabbitMQ以及RabbitMQ和Spring的整合
- Bootstrap 字体图标使用案例
- 【ElasticSearch】如何使用 ElasticSearch 搜索单词的一部分 模糊搜索 正则匹配 前缀匹配
- 设计灵感|海报设计常见中看起来很高级的文字排版
- java报错信息怎么看_AE-E3D插件无效或提示OPENGL E3D Debug等错误报错信息怎么办?...
- Java IO(input output)流二
- 交换机集群管理(锐捷)
- EXCEL生成SQL脚本
- 2021-03-03
- 毕业生写论文必备!!超详细讲解参考文献格式
- 作业四:结对编程项目--四则运算
- 修复 Key is stored in legacy trusted.gpg keyring
- 文件排版2.2 (python)
- “GANs之父”Goodfellow 38分钟视频亲授:如何完善生成对抗网络?(上)
- LeetCode知识点总结 - 347
- leetcode908
热门文章
- andorid 第五天 了解xml与应用程序之间的关系
- Web服务器漏洞和安全
- 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - H. 四平方和
- 2014/School_C_C++_A/6/“数独”游戏
- PYTHON如何在内存中生成ZIP文件
- 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - F. 寒假作业
- 如何将本地项目上传至GitHub
- 【Linux】一步一步学Linux——cut命令(44)
- 【STM32】 keil软件工具--工程目标选项配置(下)
- 【Linux系统编程应用】 Linux输入子系统(二)