排序相关的的基本概念

排序:
将一组杂乱无章的数据按一定的规律顺次排列起来。
数据表( 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中常见的排序算法有哪些?---选择排序相关推荐

  1. java util 排序_Java中常见的排序方法

    本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分 ...

  2. Java常见排序算法之直接选择排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  3. java选择排序代码_Java排序算法总结之选择排序

    本文实例讲述了Java排序算法总结之选择排序.分享给大家供大家参考.具体分析如下: 选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部 ...

  4. Java排序算法之直接选择排序

    Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...

  5. 算法之旅 | 选择排序法

    算法之旅 | 选择排序法 HTML5学堂-码匠:数据快速的计算与排序,与前端页面性能有直接的关系.由于排序的算法有很多,在本次"算法系列"的分享当中,我们先从简单易上手的选择排序法 ...

  6. c语言数据结构-算法篇之选择排序

    文章目录 前言 一.选择排序是什么? 二.选择排序 代码 前言 排序方法是一种重要的,基本的算法.排序的方法很多,本章就介绍选择排序 一.选择排序是什么? 第一次从R[0]~R[n-1]中选取最小值, ...

  7. 排序算法:简单选择排序算法实现及分析

    简单选择排序算法介绍 简单选择排序(Simple Selection Sort)就是通过n-1次关键字排序之间的比较,从n-i+1个记录中选择关键字最小的记录,并和第i(1<=i<=n)记 ...

  8. Rust 算法排位记-选择排序图示与代码实现

    听说你们在家闷得快要发霉了,来点新鲜的吧.集中注意力,让时间过得更快一些! 以下是来自菜鸟教程中的排序过程和动图示意: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置. 再从剩余未排序 ...

  9. 《数据结构与算法》实验:排序算法实验比较——选择排序 堆排序

    <数据结构与算法>实验和课程Github资源 <数据结构与算法>实验:线性结构及其应用--算术表达式求值 <数据结构与算法>实验:树型结构的建立与遍历 <数据 ...

  10. 排序算法六:选择排序之直接选择排序

    排序算法六:选择排序之直接选择排序 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言 在我的博文<"主宰世界"的10种算法短评& ...

最新文章

  1. phpinfo.php ctf,这你不是你所常见的PHP文件包含漏洞(利用phpinfo)
  2. 搭建SVN版本控制服务器
  3. arm汇编指令:ldr和adr的区别
  4. C语言学习之将一个二维数组的行和列互换,存到另一个二维数组中
  5. [译][Tkinter 教程02] Message 控件
  6. linux 的那些hung 检测机制
  7. 389 Find the Difference 找不同
  8. 函数体中的return以及函数的解的二分法
  9. [论文阅读] Cascaded Partial Decoder for Fast and Accurate Salient Object Detection
  10. 为什么数据库使用有序索引,而程序员却在使用哈希表?
  11. 医疗器材行业如何利用三类医疗器械进销存软件
  12. Win10 IPv6 远程桌面连接(小米路由器)
  13. Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization
  14. PayPal注册绑卡使用教程
  15. 什么是CAS和AQS
  16. 打开计算机无法关闭窗口,电脑中“打开或关闭Windows功能”窗口出错无法显示怎么解决...
  17. “天气之子”:GIS预测降雨
  18. 烂笔头笔记:Charles工具在Windows系统中闪退(无法打开)的问题修复
  19. 大数据学习路线图(知识体系整理)
  20. murmur3哈希算法 1

热门文章

  1. python:pandas之read_csv
  2. python:f/F,format,%的用法
  3. 三面腾讯,竟然挂在了JVM上…
  4. 「starter推荐」简单高效 Excel 导出工具
  5. SpringMVC教程--异常处理器详解
  6. 【JavaSE04】Java中循环语句for,while,do···while-练习2
  7. oracle usenl,深入理解Oracle表(1):ORDERED和USE_NL | 学步园
  8. crt mysql中文乱码_CRT 和mysql 中文乱码解决方式
  9. vue 多个click_vue中touch和click共存的解决方式
  10. pythonos基础_python基础之模块之os模块