6013|9

6423

帖子

16

TA的资源

版主

楼主
 

程序员的艺术:排序算法舞蹈(转) [复制链接]

1. 冒泡排序  冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第 1 个和第 2 个数,将小数放前,大数放后。然后比较第 2 个数和第 3 个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第 2 个数和第 3 个数的交换,使得第 1 个数不再小于第 2 个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
  由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。


2. 希尔排序
  先取一个小于n的整数 d1 作为第一个增量,把文件的全部记录分成(n除以 d1)个组。所有距离为 d1 的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量 d2
  该方法实质上是一种分组插入方法。

3. 选择排序
  每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。



4. 插入排序
  有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分里的位置



 5. 快速排序
  快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare 在 1962 年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

 6. 归并排序
  归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。

此帖出自编程基础论坛

最新回复

本帖最后由 辛昕 于 2017-11-14 10:24 编辑 阔以阔以,我还不会这个 0217   详情 回复 发表于 2017-11-13 18:26
点赞 关注(1)
个人签名training
 

回复
举报

5979

帖子

8

TA的资源

版主

沙发
 
这个帖子应该有一个对应的视频吧
怎么看不到
此帖出自编程基础论坛

点评

有6个对应的视频都在啊  详情 回复 发表于 2014-11-22 16:24
 
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

6423

帖子

16

TA的资源

版主

板凳
 
chenzhufly 发表于 2014-11-22 15:41
这个帖子应该有一个对应的视频吧
怎么看不到

有6个对应的视频都在啊
此帖出自编程基础论坛
 
个人签名training
 
 

回复

440

帖子

0

TA的资源

一粒金砂(高级)

4
 
给力啊
此帖出自编程基础论坛
 
个人签名
I like you, but just like you !
纵然万劫不复,纵然相思入骨,
我也待你眉眼如初,岁月如故!
 
 

回复

5979

帖子

8

TA的资源

版主

5
 
难道是我浏览器的问题?一个都看不到
此帖出自编程基础论坛

点评

我这强制刷新看了下,确实有啊,是不是你的浏览器原因就不知道了, 换个浏览器试一下  详情 回复 发表于 2014-11-22 18:18
 
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 

回复

6423

帖子

16

TA的资源

版主

6
 
chenzhufly 发表于 2014-11-22 17:17
难道是我浏览器的问题?一个都看不到

我这强制刷新看了下,确实有啊,是不是你的浏览器原因就不知道了, 换个浏览器试一下

此帖出自编程基础论坛
 
个人签名training
 
 

回复

1147

帖子

0

TA的资源

纯净的硅(高级)

7
 
收藏了,好东西啊
此帖出自编程基础论坛
 
 
 

回复

128

帖子

0

TA的资源

一粒金砂(中级)

8
 
这是个好贴,可以加深映像...以前每次都得翻书....
此帖出自编程基础论坛
 
个人签名where there is wade,there is a way...
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

9
 
这个太形象了
此帖出自编程基础论坛
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

10
 
本帖最后由 辛昕 于 2017-11-14 10:24 编辑

阔以阔以,我还不会这个
0217
此帖出自编程基础论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表