美文网首页
关于排序

关于排序

作者: 无羡爱诗诗 | 来源:发表于2019-07-05 14:28 被阅读0次

首先:排序从大的方面可以分为内排序和外排序。

第一个问题: 什么是内排序?

内部排序:待排序记录存放在计算机随机存储器中(说简单点,就是内存)进行的排序过程。

外部排序:待排序记录的数量很大,以致于内存不能一次容纳全部记录,所以在排序过程中需要对外存进行访问的排序过程。

第二个问题:内排序的分类和方法

1、插入排序算法:

直接插入式(类比石器时代的石器,效率非常低)、希尔排序法、折半插入排序算法。

后两者是对原始人石器时代的改进,折半插入排序类似于青铜器,希尔排序类似与铁器。

改进的思想:分而治之。

2、选择排序算法

简单选择排序和堆排序算法

简单选择排序基本思想:从无序区选择最小的元素,顺序放在已排序子序列的最后,直到全部完成排序。

该算法不智能,当序列已经有序时,该算法依旧傻呵呵的将事情全部干一边,而且一步都不漏。

之后就有人针对这个缺点进行了改进,于是有了堆排序。

堆是一颗顺序存储的二叉树。堆排序比较复杂,但是性能上优于简单选择排序。

3、交换排序算法

冒泡排序和快速排序。

冒泡排序不基于有序区和无序区,只是简单的走访交换。

快速排序是对冒泡法的改进,重在元素的归位。快速排序因为杰出的性能,尤其是数据量非常大的时候非常优秀,受到青睐。总结一句就是,短跑表现好,长跑还逆天。

4、归并排序算法

采用的也是分而治之的思维。具体算法可以研究一下,有点复杂。

表现比较好,以至于java集合框架里的排序就是归并排序算法实现的。

5、基数排序算法

基数排序算法不比较关键字的大小,而是根据关键字中各位的值,通过对待排序的n个元素进行若干趟”分配“和”收集“来实现排序的。

性能比较:

排序算法的性能对比 快速排序算法的java 实现

相关文章

  • 2018-10-26

    排序算法 排序算法冒泡排序鸡尾酒排序选择排序插入排序希尔排序归并排序快速排序堆排序 先说一些 关于排序的定义吧 排...

  • 7天练|Day3:排序和二分查找

    关于排序和二分查找的几个必知必会的代码实现排序实现归并排序、快速排序、插入排序、冒泡排序、选择排序编程实现O(n)...

  • 关于排序

    1. 冒泡 -(void)maopao{ int i,j,temp, arr[8] = {8,5,4,6,1,...

  • 关于排序

    这个很早就想开始自己整理一下,但是一直在自学,导致耽误了,但是昨天晚上突然一下子忘记了什么是计数排序,干脆复习一波...

  • 关于排序

    首先:排序从大的方面可以分为内排序和外排序。 第一个问题: 什么是内排序? 内部排序:待排序记录存放在计算机随机存...

  • 关于排序

    今天我们中级班课堂讲到了关于排序,排序是一个很简单容易操作的一个技术,这是在台湾版的焦点书籍上常常提到的。很实用的...

  • 关于排序

    基于比较排序的算法的性能是有上限的,大部分人都知道是nlgn,但是为什么多年的研究都突破不了nlgn呢,其实数学早...

  • 排序总结

    排序的方法非常多,先看维基百科中的一张关于排序算法的表,这里列了50多种排序方式。 内排序和外排序的概念 内部排序...

  • 算法汇总

    关于算法: 基础技巧:分治、二分、贪心排序算法:快速排序、归并排序、计数排序搜索算法:回溯、递归、深度优先遍历,广...

  • 涨知识:十二生肖趣谈(3)关于十二生肖的排序

    十二生肖趣谈(3) 关于十二生肖的排序 关于十二生肖的排序,民间有各种各样的传法。真实的十二生肖排序,可是大有学问...

网友评论

      本文标题:关于排序

      本文链接:https://www.haomeiwen.com/subject/baashctx.html