java中queue排序_Java中常见的排序算法有哪些?---选择排序
排序相关的的基本概念
排序:
将一组杂乱无章的数据按一定的规律顺次排列起来。
数据表( data list): 它是待排序数据对象的有限集合。
排序码(key):通常数据对象有多个属性域,
即多个数据成员组成,其中有一个属性域可用来区分对象,作为排序依据。
该域即为排序码。
每个数据表用哪个属性域作为排序码,要视具体的应用需要而定。
我们常见的一些排序算法,如图所示:
Java中的经典算法之选择排序(SelectionSort)
原理:每一趟从待排序的记录中选出最小或最大的元素,
顺序放在已排好序的序列最后,直到全部记录排序完毕。
也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
现在,我们先一起来看看什么是排序?简单选择排序的基本思想:
给定数组:int[] arr={里面n个数据};
第1趟排序,在待排序数据arr[0]~arr[n-1]中选出最小的数据,将它与arrr[0]交换;
第2趟,在待排序数据arr[1]~arr[n-1]中选出最小的数据,将它与r[1]交换;
以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与r[i]交换,直到全部排序完成。
简单来说:
比如在5个数据中,如果要做升序排序,我们分别要在这5个数中找出最小值放在第一个位置,第二小值放在第二个位置,依次类推,最后那个肯定就是第5小值
例如:有一个整型数组int[] nums = {84,83,88,87,61};
其排序后的结果,如图:
接下来,我们更进一步来分析它的比较过程:
选择排序的代码实现
i:控制总轮数
j:控制元素的索引位置
分析:5个元素,需要4轮比较,也就是说n个元素,需要n-1轮比较,看上面的情况执行情况,第几轮,j就从第几个元素开始依次和后面的元素比较,则从j=i开始
int[] nums = {84,83,88,87,61};
for(int i = 0;i< nums.length-1;i++){
for(int j=i;j< nums.length-1;j++){
if(nums[i] > nums[j+1]){
int temp ;temp = nums[i];nums[i] = nums[j+1];nums[j+1] = temp;}}
}
以上则是选择排序的算法原理和具体实现步骤,
敬请期待java中的其他排序算法!
java中queue排序_Java中常见的排序算法有哪些?---选择排序相关推荐
- java util 排序_Java中常见的排序方法
本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分 ...
- Java常见排序算法之直接选择排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- java选择排序代码_Java排序算法总结之选择排序
本文实例讲述了Java排序算法总结之选择排序.分享给大家供大家参考.具体分析如下: 选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部 ...
- Java排序算法之直接选择排序
Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...
- 算法之旅 | 选择排序法
算法之旅 | 选择排序法 HTML5学堂-码匠:数据快速的计算与排序,与前端页面性能有直接的关系.由于排序的算法有很多,在本次"算法系列"的分享当中,我们先从简单易上手的选择排序法 ...
- c语言数据结构-算法篇之选择排序
文章目录 前言 一.选择排序是什么? 二.选择排序 代码 前言 排序方法是一种重要的,基本的算法.排序的方法很多,本章就介绍选择排序 一.选择排序是什么? 第一次从R[0]~R[n-1]中选取最小值, ...
- 排序算法:简单选择排序算法实现及分析
简单选择排序算法介绍 简单选择排序(Simple Selection Sort)就是通过n-1次关键字排序之间的比较,从n-i+1个记录中选择关键字最小的记录,并和第i(1<=i<=n)记 ...
- Rust 算法排位记-选择排序图示与代码实现
听说你们在家闷得快要发霉了,来点新鲜的吧.集中注意力,让时间过得更快一些! 以下是来自菜鸟教程中的排序过程和动图示意: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置. 再从剩余未排序 ...
- 《数据结构与算法》实验:排序算法实验比较——选择排序 堆排序
<数据结构与算法>实验和课程Github资源 <数据结构与算法>实验:线性结构及其应用--算术表达式求值 <数据结构与算法>实验:树型结构的建立与遍历 <数据 ...
- 排序算法六:选择排序之直接选择排序
排序算法六:选择排序之直接选择排序 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言 在我的博文<"主宰世界"的10种算法短评& ...
最新文章
- phpinfo.php ctf,这你不是你所常见的PHP文件包含漏洞(利用phpinfo)
- 搭建SVN版本控制服务器
- arm汇编指令:ldr和adr的区别
- C语言学习之将一个二维数组的行和列互换,存到另一个二维数组中
- [译][Tkinter 教程02] Message 控件
- linux 的那些hung 检测机制
- 389 Find the Difference 找不同
- 函数体中的return以及函数的解的二分法
- [论文阅读] Cascaded Partial Decoder for Fast and Accurate Salient Object Detection
- 为什么数据库使用有序索引,而程序员却在使用哈希表?
- 医疗器材行业如何利用三类医疗器械进销存软件
- Win10 IPv6 远程桌面连接(小米路由器)
- Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization
- PayPal注册绑卡使用教程
- 什么是CAS和AQS
- 打开计算机无法关闭窗口,电脑中“打开或关闭Windows功能”窗口出错无法显示怎么解决...
- “天气之子”:GIS预测降雨
- 烂笔头笔记:Charles工具在Windows系统中闪退(无法打开)的问题修复
- 大数据学习路线图(知识体系整理)
- murmur3哈希算法 1
热门文章
- python:pandas之read_csv
- python:f/F,format,%的用法
- 三面腾讯,竟然挂在了JVM上…
- 「starter推荐」简单高效 Excel 导出工具
- SpringMVC教程--异常处理器详解
- 【JavaSE04】Java中循环语句for,while,do···while-练习2
- oracle usenl,深入理解Oracle表(1):ORDERED和USE_NL | 学步园
- crt mysql中文乱码_CRT 和mysql 中文乱码解决方式
- vue 多个click_vue中touch和click共存的解决方式
- pythonos基础_python基础之模块之os模块