插入排序算法优化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使 用 随 机数 产 生器 产 生无 序 区一个数 组 的下 标, 如果这个 数值 小 于 无 序 区 的第 一个 数 , 则交 换 这两个 数 , 然 后按 照插 入排序 将无序 区 的第一个 数 插 入 到有序 区. 部分 代码 如下 :
R a n d o m r nd a o m =n e w R a n d o m( ) ; f o r ( i n t i =1 ; i< a r r a y . 1 e n g t h ; i + +)
第3 3卷 第 5期
2 0 1 5 年 0 9月
佳 木 斯 大 学 学 报 ( 自 然 科 学 版 ) J o u na r l o f J i a mu s i U n i v e r s i t y( N a t u r a l S c i e n c e E d i t i o n )
w h i l e ( j>0& &a r r a y [ j ] >t e m p )
{
7 3 7
2 . 2 . 2 分 成两 组 在2 . 2 . 1中 , 对 无序 区采 用 随机数 产生 器来 获 取 一个 未知 大小 的数 的位置 , 避 免 了数组 中大 量降
a Ⅱ a y [ j +n ]: a r r & y [ j ] ;
j 一 =n ;
序 排列 带来 的大量 移 动. 但仅 这 样做 是无 法使效 率 提 高到令 人 满意 的水平 的 , 因此 在 2 . 2 . 1的基础 上 采用分组策略, 即将数组分成两组 进行插入排序 , 然 后进行 整体 插入 排 序 , 以达 到 减少 比较 移动次 数 的 目的. 部分 代码 如下 :
化. 分 别从 随机 获取 无序 区元素 、 分组 、 增量和 设立标 志位等 方 面进行 优化 , 有 效 降低 了插入排序
算 法的时间复 杂度. 实验 结果表 明 , 改进后 的排序 算 法在排序 效率 上得 到 了很 大提 高. 关键词 : 插入排 序 算法 ; 算法优化 ; 排序 效率
Vo l _ 3 3 N o . 5
S e p. 2 01 5
文章 编 号 : 1 0 0 8—1 4 0 2 ( 2 0 1 5 ) 0 5—0 7 3 6— 0 3
插 入 排序 算 法优 化①
汪 红 霞 , 邵 飞 飞
( 安徽新华学院 1 . 信息工程学院 . 2 . 计算机科学与技术学院 . 安徽 合肥 2 3 0 0 8 8 )
{
t=r a n d o m. n e x t l n t ( a r r a y . 1 e n g t h~i )+i ;
i f ( a r r a y [ i ]> a r r a y [ t ] ) { t e mp= a r r a y [ t ] ; a r r a y [ t ] =a r r a y [ i ] ; a r r a y [ i ] :t e mp ;
摘
要: 当今 时代 , 云计 算与 大数 据越 来越被人 们 所 重视. 算 法 的时 间复 杂度 作 为评 估 算 法性
能 的最重要 的 因素之 一 , 亟 需得 到改善 和提 高. 而排序 算法 的优 劣 直接 影 响 算 法的运 行 速度. 为 了减 少大数据 和云计 算 算法 的排序 时 间 , 提 高排 序 算 法运 行 的 效 率 , 对插 入 排序 算 法进行 了优
中图分类 号 : T P 3 9 文献标 识码 : A
0 引 言
随着社会 的发展 , 排Baidu Nhomakorabea 作为 一种提 高查询 效率 的手段 显得越 来越重要 , 尤 其是在 大数 据与 云计算
为了能够通过减少交换和比较次数来减少排
序 时问 , 本 文 就 插 入 排 序 采 用 随机 选 取 无 序 区元 素、 分组、 增量、 设 立标 志位 等方法进 行优化 .
}
… …
2 排序 算 法 的 优 化过 程
① 收稿 日期 : 2 0 1 5—0 7— 2 3
/ / 执行插人操作
}
作者简 介: 汪红霞( 1 9 7 9一) , 女, 安徽宣城人 , 讲师 , 硕 士。 研究方向 : 算 法优化
第 5期
汪红 霞 , 等: 插入 排序 算 法优 化
2 . 1 插入排 序 的优 化
广泛应用的今天, 大量杂乱无序 的信息数据 , 如果 不按照一定的规则排序, 会大大降低信息交换工作 和查询 的效率 , 因此对 排序算 法 的研究 工作存 在着 定 的实用价值 J . 本文 主要针 对插 入排 序算 法
一
直接插 入排序法 的过程是每次取无序区的第
和查找的效率 , 减少排序时间.
1 相 关 工作
近年来 , 学者们就各种排序算法提出了不同程 度 的优化 , 使 排 序效 率 有 了不 同程 度 的提 升 , 文 献 [ 5 ] 仅仅对已有 的直接插入排序算法进行 阐述及 算法 分析 . 文献 [ 6 ] 主 要 分 析 了插 人 排 序 、 选 择 排 序、 交换 排序 , 归并 排序 、 分配 排序 这几种 排序 的思 路, 比较 了它们 之 间算 法 性 能 . 文献 [ 7 ] 主要 对 直 接插 入排序 、 简单 选 择排 序进 行 程 序设 计 思 想 、 性 能指标分析. 但是这些优化过的排序算法适用于小 数组, 对 于大量 杂乱 数 据 的排 序 效 率并 不 高 . 本 文 主要针对 当今社 会的庞 杂数 据应用 排序 , 就直接 插 人 排序算法 提 出优 化思 路和改 进方 案 , 使 其在使 用 计算 机处理规 模越 来越 大 的数 据 的问题 上 , 能够 更 适应 当下技术 的发 展趋 势.
一
个 元素插 入 有 序 区 . 对 排 列完 全 逆序 的数 组 来
进行优 化 , 研究 高效 、 合 适 排 序 算法 提 升 信 息交 流
说, 这样 固定 的选 取 元 素 执 行 插 人 操 作 效 率 非 常 低. 因此 , 需 采用一 些策 略进行 优化 . 2 . 2 . 1 随机 获取无 序 区元素