各种常用排序算法的分析与比较
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 . 1 . 2 算法分析
个简单 的 问题 , 但 是从计 算机科 学发展 以来 , 已经有 了大 量的
研 究 。例 如 , 冒泡排序 在 1 9 5 6年就 已经被 研究 , 虽然 大部 分人 认 为 这是 一个 已经 被解 决 的问题 , 有用 的新 算法 仍在 不断 的被 发明 。 笔者就排序的两种方法进行研究 , 分别是顺序表( c o n t i g u o u s
可 以根据 排 序 特 点划 分得 到 更加 具体 的类型 。介 绍 了各 种 排序 算 法 , 对 每 种 算法 进行 分析 并 将其 用程 序 实现 , 通 过 分析 对 比得 到 各种 算 法 的最佳 使 用 环境 , 从 而使 各 算 法能 够被 高效 地 利用 。 关 键词 : 排序 算 法; 算 法分 析 ; 程 序 实现
各种 常用排序 算法 的分析 与 比较
严 玮
( 甘肃 交通职业技术 学院, 甘肃 兰州 7 3 0 0 7 0 )
摘
要: 阐述 了排序 算 法 的概念 和排序 算法 的具 体 划分 依据 , 并 将排 序 算 法分 为插 入排 序 ( i n s e r t i o n s o r t ) 、 选 择 排
是有 序 的第 一部 分里 的位 置 。
2 . 1 . 3 插 入 分 类
用链 表进 行排 序 的另一 种方 法 。
1 排序 算 法概述
( 1 ) 排序定 义 。所谓 计算 机 中的排 序 , 就是使 一 串记 录 , 按
照其 中的某个 或某 些关 键字 的 大小 , 递增 或递减 的排 列起 来 的
序( s e l e c t i o ns o r t ) 、 交换 排 序( e x c h a n g e s o r t ) 、 归并 排序 ( me r g e s o t) r 以及 分 配排序 ( d i s t r i b u t i o n s o r t ) & 大范 围 , 每种 类别 又
中图分 类 号 : G 4 3 4 文 献标 识 码 : A 文章 编 号 : 1 6 7 2 . 7 8 0 0 ( 2 0 1 3 ) 3 . 0 0 7 2 . 0 3
2 1 世纪 , 我们 共 同生活 在一个 信 息技术 的 时代 , 如 图书馆
为 了确 保所 有 书能够 正确 放置 , 所 以它需 要有 是否 有 书放错 的
s o t) r 以及 分 配排序 ( d i s t r i b u t i o n s o r t ) 。
2 排 序算 法分 析
排序 的算 法有很 多 , 对空 间 的要 求及 其 时间效 率也 不尽 相
同, 以下列 出了一些 常见 的排序 算法 。
2 . 1 插 入排 序
2 . 1 . 1 基 本 思 想
.
在 计算 机技术 发展之初 , 排序是 个简单 易行 、 快速 有效 的信 息 查询 方法 , 自然而 然 的被应 用到技 术 上面 。虽然 排序算 法 是
一
每 次将 一个 待排序 的记 录 , 按 其关 键字 大小插 入到 已经 排
好 序 的子 文件 中的适 当位置 , 直 到全部记 录插入完 成为止 , 从 而 得 到一 个新 的 、 个数 加一 的有 序数 据 。
细 的地址 信息 等等 。而 在 日常生活 中 , 人们 也经 常需 要查 询详 细 的信息 。 如在 图书管 里根 据作者 或者 书名 查找 书 目; 在 词典 中查 找某 个词 的读 音和 含义 ; 在 电话 薄 中查 找某 单位 或某 人 的 电话 号码 等 。 这种 所要 查询 的信 息往 往被保 存 在一个 很大 的数 据 库里 , 而所 需查 询 的信息 却很 小 ,这样 就会 造成查 询效 率太 低, 进 而 导致 资源 浪费很 大 , 得 不偿 失 。 为 了进 行更好 的信 息查 询需 要 把信 息用一 定合 理 的顺 序整合 起来 。 根 据要求 把被 查 到 的对 象用数 字或符 号表示 出来 , 并把数 字按 大小排列 , 这个过程 就 是信 息处 理 中的一 项基本 工作 , 而这项 工作 通常 就被称 为排
插入 排序包 括 直接插 入排 序( S t r a i g h t i n s e t r i o n s o r t ) 、 二分插
人排 序( B i n a r y i n s e t r i o n s o t) r 、 链表 插入 排序( L i s t i n s e t r i o n s o t) r 以及 希 尔排 序( S h e l l s o t) r 。
序( S t r m g o
的大 小 , 按 照升序 或降 序将原 纪 录的顺 序重新 安排 。
( 3 ) 排序类 别 。内排序可 以分为插 入排 序( i n s e r t i o n s o r t ) 、 选 择排序( s e l e c t i o n s o r t ) 、 交换排序( e x c h a n g e s o r t ) 、 归并排序( me r g e
l i s t ) 和链 表 ( 1 i n k e d l i s t s ) , 即利用 数组 进行排 序 的一种 方法 和利
插入算 法把 要排 序 的数 组分 成两 部分 : 第一部 分包 含 了数 组的所有 元素 , 但最 后一个元 素除外 , 而第 二部分 就只包含 这一
个元 素 。在第一 部分 排序后 , 再 把这 个最后 元 素插入 到此 刻 已
操作 。而排序 算法 ( S o t r i n g a l g o r i t h m) 则 是一 种能将 一 串数据 依
照特定 的方 式进行 排列 的一 种算 法 。 ( 2 ) 排序方 式 。利用 所需重 排记 录 的排序码 ( S o r t Ke y ) 的值
信息; 税 收机关为 了保证公 民合 法纳税 , 而 需要追查个 人所 交税 务 的信 息 ; 邮局 为了将 物品尽快 的转交 到收件人 手里 , 需要 其详
个简单 的 问题 , 但 是从计 算机科 学发展 以来 , 已经有 了大 量的
研 究 。例 如 , 冒泡排序 在 1 9 5 6年就 已经被 研究 , 虽然 大部 分人 认 为 这是 一个 已经 被解 决 的问题 , 有用 的新 算法 仍在 不断 的被 发明 。 笔者就排序的两种方法进行研究 , 分别是顺序表( c o n t i g u o u s
可 以根据 排 序 特 点划 分得 到 更加 具体 的类型 。介 绍 了各 种 排序 算 法 , 对 每 种 算法 进行 分析 并 将其 用程 序 实现 , 通 过 分析 对 比得 到 各种 算 法 的最佳 使 用 环境 , 从 而使 各 算 法能 够被 高效 地 利用 。 关 键词 : 排序 算 法; 算 法分 析 ; 程 序 实现
各种 常用排序 算法 的分析 与 比较
严 玮
( 甘肃 交通职业技术 学院, 甘肃 兰州 7 3 0 0 7 0 )
摘
要: 阐述 了排序 算 法 的概念 和排序 算法 的具 体 划分 依据 , 并 将排 序 算 法分 为插 入排 序 ( i n s e r t i o n s o r t ) 、 选 择 排
是有 序 的第 一部 分里 的位 置 。
2 . 1 . 3 插 入 分 类
用链 表进 行排 序 的另一 种方 法 。
1 排序 算 法概述
( 1 ) 排序定 义 。所谓 计算 机 中的排 序 , 就是使 一 串记 录 , 按
照其 中的某个 或某 些关 键字 的 大小 , 递增 或递减 的排 列起 来 的
序( s e l e c t i o ns o r t ) 、 交换 排 序( e x c h a n g e s o r t ) 、 归并 排序 ( me r g e s o t) r 以及 分 配排序 ( d i s t r i b u t i o n s o r t ) & 大范 围 , 每种 类别 又
中图分 类 号 : G 4 3 4 文 献标 识 码 : A 文章 编 号 : 1 6 7 2 . 7 8 0 0 ( 2 0 1 3 ) 3 . 0 0 7 2 . 0 3
2 1 世纪 , 我们 共 同生活 在一个 信 息技术 的 时代 , 如 图书馆
为 了确 保所 有 书能够 正确 放置 , 所 以它需 要有 是否 有 书放错 的
s o t) r 以及 分 配排序 ( d i s t r i b u t i o n s o r t ) 。
2 排 序算 法分 析
排序 的算 法有很 多 , 对空 间 的要 求及 其 时间效 率也 不尽 相
同, 以下列 出了一些 常见 的排序 算法 。
2 . 1 插 入排 序
2 . 1 . 1 基 本 思 想
.
在 计算 机技术 发展之初 , 排序是 个简单 易行 、 快速 有效 的信 息 查询 方法 , 自然而 然 的被应 用到技 术 上面 。虽然 排序算 法 是
一
每 次将 一个 待排序 的记 录 , 按 其关 键字 大小插 入到 已经 排
好 序 的子 文件 中的适 当位置 , 直 到全部记 录插入完 成为止 , 从 而 得 到一 个新 的 、 个数 加一 的有 序数 据 。
细 的地址 信息 等等 。而 在 日常生活 中 , 人们 也经 常需 要查 询详 细 的信息 。 如在 图书管 里根 据作者 或者 书名 查找 书 目; 在 词典 中查 找某 个词 的读 音和 含义 ; 在 电话 薄 中查 找某 单位 或某 人 的 电话 号码 等 。 这种 所要 查询 的信 息往 往被保 存 在一个 很大 的数 据 库里 , 而所 需查 询 的信息 却很 小 ,这样 就会 造成查 询效 率太 低, 进 而 导致 资源 浪费很 大 , 得 不偿 失 。 为 了进 行更好 的信 息查 询需 要 把信 息用一 定合 理 的顺 序整合 起来 。 根 据要求 把被 查 到 的对 象用数 字或符 号表示 出来 , 并把数 字按 大小排列 , 这个过程 就 是信 息处 理 中的一 项基本 工作 , 而这项 工作 通常 就被称 为排
插入 排序包 括 直接插 入排 序( S t r a i g h t i n s e t r i o n s o r t ) 、 二分插
人排 序( B i n a r y i n s e t r i o n s o t) r 、 链表 插入 排序( L i s t i n s e t r i o n s o t) r 以及 希 尔排 序( S h e l l s o t) r 。
序( S t r m g o
的大 小 , 按 照升序 或降 序将原 纪 录的顺 序重新 安排 。
( 3 ) 排序类 别 。内排序可 以分为插 入排 序( i n s e r t i o n s o r t ) 、 选 择排序( s e l e c t i o n s o r t ) 、 交换排序( e x c h a n g e s o r t ) 、 归并排序( me r g e
l i s t ) 和链 表 ( 1 i n k e d l i s t s ) , 即利用 数组 进行排 序 的一种 方法 和利
插入算 法把 要排 序 的数 组分 成两 部分 : 第一部 分包 含 了数 组的所有 元素 , 但最 后一个元 素除外 , 而第 二部分 就只包含 这一
个元 素 。在第一 部分 排序后 , 再 把这 个最后 元 素插入 到此 刻 已
操作 。而排序 算法 ( S o t r i n g a l g o r i t h m) 则 是一 种能将 一 串数据 依
照特定 的方 式进行 排列 的一 种算 法 。 ( 2 ) 排序方 式 。利用 所需重 排记 录 的排序码 ( S o r t Ke y ) 的值
信息; 税 收机关为 了保证公 民合 法纳税 , 而 需要追查个 人所 交税 务 的信 息 ; 邮局 为了将 物品尽快 的转交 到收件人 手里 , 需要 其详