数据结构与算法之选择排序
数据结构与算法之选择排序
目录
- 基本介绍
- 选择排序思想
- 代码实现
1. 基本介绍
- 选择排序也属于内部排序法,是从排序的数据中,按指定的规则选出某一元素,再依次交换位置后达到排序的目的
2. 选择排序思想
选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1] ~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2] ~arr[n-1]中选取最小值,与arr[2]交换,···,第i次从arr[i-1] ~arr[n-1]中选取最小值,与arr[i-1]交换,第n-1次从arr[n-2] ~ arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。
3. 代码实现
import java.util.Arrays;public class SelectSort {public static void main(String[] args) {int[] arr= {101,34,119,1};System.out.println("排序前");System.out.println(Arrays.toString(arr));selectSort(arr);System.out.println("排序后");System.out.println(Arrays.toString(arr));}//选择排序public static void selectSort(int[] arr){//原始的数据 : 101,34,119,1for (int i = 0; i < arr.length-1; i++) {int minIndex = i;int min = arr[i];//第一轮for (int j = i+1;j < arr.length; j++) {if (min > arr[j]){ //说明假定的最小值,并不是最小min = arr[j]; //重置minminIndex = j; //重置minIndex}}//交换一下,将最小值放在arr[0],即交换arr[minIndex] = arr[i]; //将arr[0]的值放到需要交换的数的位置arr[i] = min;}}
}
编译结果
备注:80000条数据大概3s可以排好。
数据结构与算法之选择排序相关推荐
- 数据结构与算法:选择排序
数据结构与算法:选择排序 雪柯 大工生物信息 提笔为写给奋进之人 已关注 8 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国忠 特别备注:本书非原创,但部分内容自己 ...
- 数据结构与算法 | 直接选择排序、双向选择排序
前几章讲了交换排序中较为复杂切高效的堆排序,这次就来讲讲选择排序中最简单的直接选择排序及其改进双向选择排序. 选择排序:顾名思义,就是主要通过选择来完成的排序,每一趟从待排数据中选择一个最大或者最小的 ...
- 09_数据结构与算法_选择排序_Python实现
""" 选择排序:思路:遍历整个列表,找到最小项的位置.如果该位置不是列表的第一个位置,算法就会交换这两个位置的项:然后算法回到第二个位置并重复这个过程 "&q ...
- 【python】数据结构与算法之选择排序
一.选择排序 初始状态:有序区为空,无序区为[0,-,n] 每次找到无序区里的最小元素,添加到有序区的最后 重复前面 的步骤,直到排序完成 二.画图演示 三.代码块 def selectSort(nu ...
- 数据结构与算法之选择排序图文详解及代码 (C++实现)
实现: #include<iostream> using namespace std; #define MAXSIZE 20//顺序表的最大长度 typedef int KeyType;/ ...
- 【数据结构与算法】高级排序(希尔排序、归并排序、快速排序)完整思路,并用代码封装排序函数
本系列文章[数据结构与算法]所有完整代码已上传 github,想要完整代码的小伙伴可以直接去那获取,可以的话欢迎点个Star哦~下面放上跳转链接 https://github.com/Lpyexplo ...
- 排序---初级排序算法(选择排序、插入排序和希尔排序)
写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera Algorithms Part1&2 本文 ...
- 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试
案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...
- 排序算法 | 直接选择排序,算法的图解、实现、复杂度和稳定性分析
排序算法 | 直接选择排序,算法的图解.实现.复杂度和稳定性分析 目录 1.直接选择排序的原理 2.图解直接选择排序 3.算法代码实现 4.算法复杂度分析.稳定性分析 直接选择排序 1.直接选择排序的 ...
最新文章
- 从Storm到Flink:大数据处理的开源系统及编程模型
- App开发定制的种类:企业需要开发哪种App?
- STM32用IAR调试出现Error[Pe020]: identifier FILE is undefined 解决方法
- qt 旋转后的三维坐标_OpenGL + Qt: 3 - 旋转动画和键盘操纵
- 位图BitMap大数据筛选
- excel筛选排序从小到大_excel筛选怎么用教程 重复数据多个条件筛选功能教学
- 固态硬盘母盘制作 linux,网维大师母盘制作教程
- 使用暴风激活激活系统,浏览器被劫持问题解决
- xp计算机内存条启动,xp系统出现“xx内存不能为read或written”怎么解决
- PHP 把ofd格式文件转PDF,打开OFD格式文件及将OFD格式文件转换成PDF文件
- 倾斜摄影三维建模软件photoscan教程 [转]
- readmemh函数引用的txt格式_[转载](zz)用于读取和写入文本文件Verilog代码
- 李宏毅学习笔记11.CNN(上)
- Win10沙盒功能,系统自带免费免安装
- 小技巧-用Python发送邮件
- 百度鹰眼android开发,百度鹰眼Android SDK 运行配置
- 不用找,你想要的横版人物,角色游戏素材素材都在这里
- Linux系统中使用Nginx实现反向代理
- 微软新服务,允许企业扩大对其威胁情报库的访问权限
- 观后感《经济逆境中,普通人的机会在哪里?》
热门文章
- CSVN部署安装,实现web管理svn
- WebService学习之旅(四)Apache Axis2的安装
- Oracle与MySQL性能比较
- 有没有通过代码退出程序的方法--官方解答
- [转]写一个块设备驱动(第八章)
- POJ - 2342 Anniversary party(树形dp入门)
- python基础语法-三大内建数据结构之列表(list)
- 实验一线性表的基本操作实现及其应用(JavaScript实现)
- 构造类斐波那契数列矩阵
- OD+IDA6.1破解HideWizardv9.29(无忧隐藏)