内部排序算法的简单介绍

排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把他们变成一组按关键字排序的有序序列。

假设含有n个记录的序列为{R1,R2,…,Rn},其相应的关键字序列为{K1,K2,…,Kn}。将这些记录重新排序为{Ri1,Ri2,…,Rin},使得相应的关键字值满足条件 Ki1≤Ki2≤…≤Kin,这样的一种操作称为排序。
一旦将一组杂乱无章的记录重排成一组有序记录,接下来就能快速从这组记录中找到目标记录。因此通常来说,排序的目的是快速查找。

对于一个排序算法来说,一般从如下3个方面来衡量算法的优劣。

  • 时间复杂度:它主要是分析关键字的比较次数和记录的移动次数。
  • 空间复杂度:分析排序算法中需要多少辅助内存。
  • 稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的;反之,就是不稳定的。

内部排序的分类

  • 选择排序(直接选择排序、堆排序)
  • 交换排序(冒泡排序、快速排序)
  • 插入排序(直接插入排序、折半插入 排序、Shell排序)
  • 归并排序
  • 桶式排序。
  • 基数排序
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 排序的基本概念 在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快...
    Jack921阅读 1,459评论 1 4
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,220评论 0 52
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    闲云清烟阅读 767评论 0 6
  • java -jar jenkins.war --httpPort=8080 (指定端口号) java 启动 -Dl...
    lconcise阅读 904评论 0 1
  • (一早,有人打卡在舞蹈房,有人跑步在南湖旁。还问"有木有偶遇的") 浪在湖边, 波在湖面。 一脚碎步, 一脚偶遇。
    步鹿狐阅读 231评论 0 3