排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类:

(1) 插入排序:直接插入排序、二分法插入排序、希尔排序。

(2) 选择排序:简单选择排序、堆排序。

(3) 交换排序:冒泡排序、快速排序。

(4) 归并排序

(5) 基数排序

当然,所需要辅助空间最多的是:归并排序

所需要辅助空间最少的是:堆排序

平均速度最快的:肯定是快速排序啦

具有不稳定性的:快速排序,希尔排序,堆排序

接下来我们就针对几个常用且重要的排序方法进行简单的讲解:

一、插入排序

1、思路:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。

2、实例:

3、Java实现

二、简单选择排序

1、思路:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;

然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

2、实例:

3、Java实现

三、希尔排序(最小增量排序)

1、思路:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

2、实例:

3、Java实现

四、冒泡排序

1、思路:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

2、实例:

3、Java实现

需要更多学习笔记干货的小伙伴、欢迎关注公众号【老九学堂】(づ ̄3 ̄)づ╭❤~

插入排序java_「Java」各类排序算法相关推荐

  1. 「Java」- 八大排序

    目录 前言 1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.堆排序 6.快速排序 7.归并排序 8.计数排序 前言 由于本章介绍的大多数排序都需要用到数组两个元素之间进行交换操作 , 所以 ...

  2. 水桶平分 java_关于java:桶排序算法代码问题

    我需要在Java中实现以下内容. 输入:整数数组 输出:重新排列数组以具有以下内容: 假设原始数组中的第一个元素的值为x 在新数组中,假设x在位置I,即data[I] = x.然后,对所有x和所有j ...

  3. JAVA堆排序有监视哨吗_数据结构-各类排序算法总结

    各类排序算法总结 一. 排序的基本概念 排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列. 有 n 个记录的序列{R1 ...

  4. 各类排序算法总结(作者:__Boost)

    各类排序算法总结 一. 排序的基本概念 排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列. 有 n 个记录的序列{R1 ...

  5. android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些

    学Java能拿高薪吗?Java中常见排序算法有哪些?作为老牌编程语言,Java拥有广阔的市场占有率,几乎90%以上的大中型互联网应用系统在服务端开发都会首选Java.为了加入到Java这一高薪行业,很 ...

  6. 各类排序算法汇总及动画演示(C语言)

    常用排序算法及动画演示 (一)插入排序 插入排序可形象理解为打扑克时理牌的一个过程,具体分为直接插入.折半插入排序.希尔排序三种: ①直接插入排序 void InsertSort(int a[],in ...

  7. Java回炉之排序算法

    Java回炉之排序算法 Java回炉之排序算法 冒泡排序 插入排序 归并排序 快速排序 希尔排序 选择排序 堆排序 冒泡排序 一次次遍历数组,每次比较相邻两个. 两重循环,内层比较index和inde ...

  8. Java折半二叉树,成都汇智动力-Java实现常用排序算法

    原标题:成都汇智动力-Java实现常用排序算法 排序算法介绍 1. 基本概念 稳定性: 待排序的数列中,若两个元素的值相等 R1 = R2 ,在排序结束之后,元素之间的相对位置没有发生变化,则称排序算 ...

  9. Java默认的排序算法

    Java基础-08 [08:11] Java默认的排序算法: 需要区分: 是 Arrays.sort() 还是 Collections.sort() (底层是调用 Arrays.sort()): 什么 ...

最新文章

  1. aspx-cs-dll :在部署后就让所有的aspx处于已经编译成dll的状态
  2. else 策略模式去掉if_干掉if-else系列,可解决各种多分支嵌套,内联嵌套,复杂结构等,非策略模式的实现...
  3. OpenCASCADE绘制测试线束:几何命令之概述
  4. 脸部螨虫和肥皂洗脸的问题
  5. Android 隐式意图的配置
  6. java string... 参数_Java String.Format() 方法及参数说明
  7. android 蒙版图片带拖动_黑橙修图:新手入门篇2-一句话带你认识图层蒙版
  8. JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开
  9. LuaStudio 9.27 去10分钟退出暗桩板
  10. QQ文件上传不了:什么年代了,还使用简单的关键词过滤,智能一点可好
  11. numpy_isfinite函数
  12. 2020牛客寒假算法基础集训营3 B 牛牛的DRB迷宫II二进制详解
  13. Python OpenCV 图像平移,取经之旅第 10 天
  14. Linux chmod +755和chmod +777 各是什么意思呢?
  15. Android中的多点触摸
  16. 8c SQL手册 三
  17. 区块链APP怎么开发?深入分析
  18. web直传cos(腾讯云)图片视频
  19. php sesstion,操作Session的PHP类
  20. PMP什么样的题库才是好的题库?

热门文章

  1. Java生产力提示:社区的热门选择
  2. kickstart_具有Java Kickstart的MongoDB
  3. JavaOne 2015:高级模块化开发
  4. jvm需要多长时间进行转义分析? 可能比您想象的要长。
  5. java序列化深克隆_克隆可序列化和不可序列化的Java对象
  6. 编写干净的测试-被认为有害的新内容
  7. 编写自动调试器以在测试执行期间捕获异常
  8. 从RSS Feed和YQL创建数据表
  9. BTrace:Java开发人员工具箱中的隐藏宝石
  10. 用Java解决生产者-消费者问题