EIGHT SORT厉害

上传人:jiups****uk12 文档编号:38521681 上传时间:2018-05-03 格式:PDF 页数:19 大小:2.42MB
返回 下载 相关 举报
EIGHT SORT厉害_第1页
第1页 / 共19页
EIGHT SORT厉害_第2页
第2页 / 共19页
EIGHT SORT厉害_第3页
第3页 / 共19页
EIGHT SORT厉害_第4页
第4页 / 共19页
EIGHT SORT厉害_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《EIGHT SORT厉害》由会员分享,可在线阅读,更多相关《EIGHT SORT厉害(19页珍藏版)》请在金锄头文库上搜索。

1、guisu,程序人生。 逆水行舟,不进则退。分类: 数据结构与算法 c/c+目录(?)+博客专家福利 【限时活动】建专辑得大奖 专访荣浩:流程的永恒之道 当青春遇上互联网,能否点燃你的创业梦 推荐有礼-找出您心中的技术大牛八大排序算法2012-07-23 16:45 23788人阅读 评论(16) 收藏 举报算法mergepivot存储exchange概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快

2、速排序、堆排序或归并排序序。快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;1.插入排序直接插入排序(Straight Insertion Sort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。原创: 202篇 转载: 0篇译文: 0篇评论: 590条个人资料真实的归宿访问: 1159062次积分: 11685分排名: 第321名文章分类操作系统 (

3、5)Linux (17)MySQL (12)PHP (41)PHP内核 (11)技术人生 (7)数据结构与算法 (29)云计算hadoop (24)网络知识 (7)c/c+ (23)memcache (5)HipHop (2)计算机原理 (4)Java (7)socket网络编程 (8)设计模式 (26)AOP (2)重构 (11)重构与模式 (1)大数据处理 (12)搜索引擎Search Engine (15)HTML5 (1)Android (1)webserver (3)NOSQL (7)NOSQL Mongo (0)分布式 (1)数据结构与算法 xi (0)协议 (1)信息论的熵 (0

4、)关于php的libevent扩展的应能干的人解决问题。智慧的人绕开问题(A clever person solves a problem. A wise person avoids it)目录视图摘要视图订阅登录 | 注册直接插入排序示例:如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。算法的实现:效率:时间复杂度:O(n2).其他的插入排序有二分插入排序,2-路插入排序。2. 插入排序希尔排序(Shells Sort)希尔排序是1959 年由D.L.Shell 提出

5、来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。操作方法:1. 选择一个增量序列t1,t2,tk,其中titj,tk=1;2. 按增量序列个数k,对序列进行k 趟排序;3. 每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。展开(49936)(42296)(38868)(28143)(25551)(23671)(23670)(22980)(22410)(20460)(34)(31)(22)(22)

6、(21)(20)(19)(18)(17)(16)用 (0)libevent简单介绍 (0)文章存档2014年09月 (1)2014年08月 (2)2014年05月 (1)2014年03月 (1)2014年02月 (1)阅读排行hbase安装配置(整合到hadoop)socket阻塞与非阻塞,同步与异步、I/O模型Hadoop集群配置(最全面总结)设计模式 ( 十八 ) 策略模式Strategy(对象行为型)设计模式(五)适配器模式Adapter(结构型)八大排序算法Mysql 多表联合查询效率分析及优化PageRank算法Java输入输出流谷歌三大核心技术(三)Google BigTable中

7、文版评论排行设计模式 ( 十八 ) 策略模式Strategy(对象行为型)socket阻塞与非阻塞,同步与异步、I/O模型海量数据处理算法Bit-MapPHP SOCKET编程硬盘的读写原理设计模式(一)工厂模式Factory(创建型)HDFS写入和读取流程深入理解java异常处理机制UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现Hadoop集群配置(最全面总结)推荐文章最新评论深入理解java异常处理机制 mc46790090: mc46790090: 抱歉,之前的留言可能给大家造 成误解“finally块中,不能同时出 现抛出异常.操作系统内存管理分区、页式、段式管理 wuko

8、nggaoxing: 不错,写的很 好Hadoop Hive sql语法详解 siki5201314: goodsocket阻塞与非阻塞,同步与异步、I/O模型 xueyy_: 学习了设计模式 ( 十七) 状态模式State(对象行为型) john-huang: 学习,很具体,例 子也很不错设计模式(十一)代理模式Proxy(结构型) iaiti: mark。使用Storm实现实时大数据分析 yebai: 写的很好v o i d p r i n t ( i n t a , i n t n , i n t i ) c o u t = 1 ) S h e l l I n s e r t S o r

9、 t ( a , n , d k ) ; d k = d k / 2 ; i n t m a i n ( ) i n t a 8 = 3 , 1 , 5 , 7 , 2 , 4 , 9 , 6 ; / / S h e l l I n s e r t S o r t ( a , 8 , 1 ) ; / / 直接插入排序 s h e l l S o r t ( a , 8 ) ; / / 希尔插入排序 希尔排序时效分析很难,关键码的比较次数与记录移动次数依赖于增量因子序列d的选取,特定情况下可以准确估算出关键码的比较次数和记录的移动次数。目前还没有人给出选取最好的增量因子序列的方法。增量因子序列可

10、以有各种取法,有取奇数的,也有取质数的,但需要注意:增量因子中除1 外没有公因子,且最后一个增量因子必须为1。希尔排序方法是一个不稳定的排序方法。3. 选择排序简单选择排序(Simple Selection Sort)基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。简单选择排序的示例:操作方法:第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换;第二趟,从第二个记录开始的n-1 个记录中再选出关键码最小的记录与第二

11、个记录交换;以此类推.第i 趟,则从第i 个记录开始的n-i+1 个记录中选出关键码最小的记录与第i 个记录交换,直到整个序列按关键码有序。算法实现:p r i n t ( a , 8 , 8 ) ; v o i d p r i n t ( i n t a , i n t n , i n t i ) c o u t a j ) k = j ; r e t u r n k ; / * * * 选择排序 * * / v o i d s e l e c t S o r t ( i n t a , i n t n ) i n t k e y , t m p ; f o r ( i n t i = 0

12、; i r m a x ) m a x = j ; c o n t i n u e ; i f ( r j = 0 ; - - i ) H e a p A d j u s t ( H , i , l e n g t h ) ; / * * * 堆排序算法 * / v o i d H e a p S o r t ( i n t H , i n t l e n g t h ) / / 初始堆 B u i l d i n g H e a p ( H , l e n g t h ) ; / / 从最后一个元素开始对序列进行调整 f o r ( i n t i = l e n g t h - 1 ; i

13、 0 ; - - i ) / / 交换堆顶元素H 0 和堆中最后一个元素 i n t t e m p = H i ; H i = H 0 ; H 0 = t e m p ; / / 每次交换堆顶元素和堆中最后一个元素之后,都要对堆进行调整 H e a p A d j u s t ( H , 0 , i ) ; i n t m a i n ( ) i n t H 1 0 = 3 , 1 , 5 , 7 , 2 , 4 , 9 , 6 , 1 0 , 8 ; c o u t a j + 1 ) i n t t m p = a j ; a j = a j + 1 ; a j + 1 = t m p

14、; v o i d B u b b l e _ 1 ( i n t r , i n t n ) i n t i = n - 1 ; / / 初始时, 最后位置保持不变 w h i l e ( i 0 ) i n t p o s = 0 ; / / 每趟开始时, 无记录交换 f o r ( i n t j = 0 ; j r j + 1 ) p o s = j ; / / 记录交换的位置 i n t t m p = r j ; r j = r j + 1 ; r j + 1 = t m p ; i = p o s ; / / 为下一趟排序作准备 v o i d B u b b l e _ 2 ( i n t r , i n t n ) i n t l o w = 0 ; i n t h i g h = n - 1 ; / / 设置变量的初始值 i n t t m p , j ; w h i l e ( l o w r j + 1 ) t m p = r j ; r j = r j + 1 ; r j + 1 = t m p ; - - h i g h ; / / 修改h i g h 值, 前移一位 f o r

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号