前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >排序算法(1)---基本概念

排序算法(1)---基本概念

作者头像
创译科技
发布2019-06-02 21:09:55
4980
发布2019-06-02 21:09:55
举报
文章被收录于专栏:Node开发Node开发

排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序、买火车票会按照出发时间、买东西会按照销量排序、查找文件会按照最近修改时间排序等等。在程序设计中,排序也是最基本的算法,在一般的数据处理或分析中,首先就需要对数据进行排序。

排序的基本概念

排序,其实就是让指定记录,使之按关键字递增(或递减)次序排列起来。

比如期末考成绩排序按照总分从高到低的顺序进行排序。这是就是让学生成绩按照关键字总分从高到低排序。如果期末考成绩按照学号排序,那就是按照关键字学号排序。

排序的稳定性

当所有待排序记录的关键字均不相同时,排序结果是惟一的,否则排序结果不唯一。

在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。

排序方法的分类

1.按是否涉及数据的内、外存交换

2.按策略划分内部排序方法,可以分为五类:插入排序、选择排序、交换排序、归并排序和分配排序。

排序算法分析

1.排序算法的基本操作

(1) 比较两个关键字的大小;

(2) 改变指向记录的指针或移动记录本身。

2.待排文件的常用存储方式

(1) 以顺序表作为存储结构

排序过程:直接对记录进行物理移动。

(2) 以链表作为存储结构

排序过程:无须移动记录,仅需修改指针。

(3) 用顺序的方式存储待排序的记录,但同时建立一个辅助表(如包括关键字和指向记录位置的指针组成的索引表)

排序过程:只需对辅助表的表目进行物理重排。适用于难于在链表上实现,仍需避免排序过程中移动记录的排序方法。

3.排序算法性能评价

评价排序算法好坏的标准主要有两条:

算法的时间复杂度与空间复杂度

算法本身的复杂程度

了解排序的基本概念,下一篇开始依次讲讲几个常见的排序算法。讨论不同算法的效率高低以及讲讲不同算法的使用场景。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿周先森 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 排序的基本概念
  • 排序,其实就是让指定记录,使之按关键字递增(或递减)次序排列起来。
    • 排序的稳定性
      • 排序算法分析
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档