选择排序分为简单选择排序和堆排序,下面看看两个算法直接的对比。

1、简单选择排序

简单选择排序法就是通过n-i此关键字间的比较,从n-i-1个记录中选出关键字最小的记录,并且和第i个记录交换。实现如下:

package com.sort.exe;public class SelectSort {public  void selectSort(int[] arrs){int i,j,min=0;for( i=0;i<arrs.length;i++){//将第一个下标设为最小值;min=i;for( j=i+1;j<arrs.length;j++){//若第j个下标表示的值比 min表示的值小,就将下标j赋值给min;如此操作直到数组尾部if(arrs[min] > arrs[j])min=j;}//如果min改变了,说明找到了最小值if(min != i){int temp=arrs[i];arrs[i]=arrs[min];arrs[min]=temp;}}}public static void main(String[] args){int[] a={1,12,3,9,5,6,8}; new SelectSort().selectSort(a);for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } }
}

时间复杂度O(n^2)

2、堆排序

【2】数据结构与算法 —— 选择排序算法相关推荐

  1. 十大经典排序算法-选择排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  2. C++常见排序算法——选择排序算法

    首先说一下选择排序的基本算法思想: 如果有N个元素需要排序,那么首先从N个元素中找到最小的那个元素与第0位置上的元素交换,然后再从剩下的N-1个元素中找到最小的元素与第1位置上的元素交换,之后再从剩下 ...

  3. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  4. 选择排序算法(基于Java实现)

    title: 选择排序算法(基于Java实现) tags: 选择算法 选择排序算法原理及代码实现: 一.选择排序算法的原理 选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间.但是选择 ...

  5. Java | 用Java实现选择排序算法(记录写程序全过程的编程哲学)

    最近听了马士兵老师的java算法课,感觉这不错,我很欣赏其中的编程哲学. 一.编程哲学 有简单到复杂 1.1 验证一步走一步 1.2 多打印中间结果 先局部后整体 先粗糙后精细 3.1 变量更名 3. ...

  6. 十大经典排序算法-桶排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  7. 十大经典排序算法-希尔排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  8. 数据结构与就算法(选择排序)

    数据结构与就算法(选择排序) 数据!您好 2019-01-07 05:16:18 2736 收藏 17 版权 1>什么是选择排序,选择排序和插入排序的思想差不多,也分已排序区间和未排序区间,只是 ...

  9. 选择排序算法,只需这篇文章就够了

    一.说在前面 一直想写一些简单易懂的文章,因为平时看的很多的书籍或者文章都是看着很难受的感觉,当然,这并不是说书籍写的不好,只是说对于一些没有太多基础或者基础不是很好的来说,相对来说还是比较难以理解的 ...

最新文章

  1. 自动驾驶规划术语与搜索空间的几种方法
  2. 使用商业模式的九大模块去分析京东的商业模式_商业模式—筑基篇(1)
  3. linux下获取系统时间的方法
  4. (转)数字格式化函数:Highcharts.numberFormat()
  5. 微信小程序 - 豆瓣同城
  6. (转载)github简单使用教程
  7. 邻居子系统:地址解析协议
  8. [转]windows2003的IIS详细设置方法
  9. Java基础String类
  10. 5V转3.3V原理图(AMS1117)
  11. 华为hcie证书含金量_华为hcie证书含金量高吗
  12. scrapy项目:爬取豆瓣畅销书排行榜内容(仅爬取2020年1-3页:无保存)
  13. 班级网站java_基于jsp的班级网站-JavaEE实现班级网站 - java项目源码
  14. 计算机考试outlook怎么发邮件,outlook怎么用,教您outlook使用方法
  15. macOS 安卓模拟器 Genymotion 安装
  16. JS语法之:require
  17. ios 去除字符串首尾空格、换行
  18. 使用域名邮箱发送邮件
  19. r语言 求几个数的最小公倍数_一课研究之“最小公倍数教学后学生知识技能情况分析”(20190417)...
  20. 2021年中国低代码行业白皮书

热门文章

  1. DOS批处理高级教程(还不错)(转)
  2. Android开发总结之动画(帧动画+补间动画)
  3. Arduino学习篇记录2.2——制作摩斯密码信号灯
  4. oracle 索引介绍、作用、使用
  5. android layout 替换,Android中AbsoluteLayout的替代方法是什么?
  6. 运营商拥抱TIP 设备商与互联网厂商话语权争夺升温
  7. OSChina 周六乱弹 ——月半君给各位朋友一个忠告
  8. 减压放松的10 个网站
  9. 【转】git.exe在官网下载总是失败的解决方法
  10. WPF 实现星空效果