三九宝宝网宝宝教育计划总结

C语言排序有哪些方法详细点

01月06日 编辑 39baobao.com

[谁能用C语言编程游戏或者图片相关实例的程序]用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 功能要求 (1)查看功能:选择此功能时,列出下列三类选择。 A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出...+阅读

我博客里收藏的,粘给你 排序有哪几种好方法( 1 )2009-12-03 19:26 排序小结 排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法 对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将 给出详细的说明。 对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。

我将按照算法的复杂度,从简单到难来分析算法。 第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N)(因为没有 使用word,所以无法打出上标和下标)。 第二部分是高级排序算法,复杂度为O(Log2(N))。这里我们只介绍一种算法。另外还有几种 算法因为涉及树与堆的概念,所以这里不于讨论。 第三部分类似动脑筋。

这里的两种算法并不是最好的(甚至有最慢的),但是算法本身比较 奇特,值得参考(编程的角度)。同时也可以让我们从另外的角度来认识这个问题。 第四部分是我送给大家的一个餐后的甜点——一个基于模板的通用快速排序。由于是模板函数 可以对任何数据类型排序(抱歉,里面使用了一些论坛专家的呢称)。 现在,让我们开始吧:一、简单排序算法 由于程序比较简单,所以没有加什么注释。

所有的程序都给出了完整的运行代码,并在我的VC环境 下运行通过。因为没有涉及MFC和WINDOWS的内容,所以在BORLAND C++的平台上应该也不会有什么 问题的。在代码的后面给出了运行过程示意,希望对理解有帮助。 1.冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: #includevoid BubbleSort(int* pData,int Count) { int iTemp; for(int i=1;i=i;j--) { if(pData[j]8,7,10,9->7,8,10,9(交换2次) 第二轮:7,8,10,9->7,8,10,9->7,8,10,9(交换0次) 第一轮:7,8,10,9->7,8,9,10(交换1次) 循环次数:6次 交换次数:3次 上面我们给出了程序段,现在我们分析它:这里,影响我们算法性能的主要部分是循环和交换, 显然,次数越多,性能就越差。

从上面的程序我们可以看出循环的次数是固定的,为1+2+...+n-1。 写成公式就是1/2*(n-1)*n。 现在注意,我们给出O方法的定义: 若存在一常量K和起点n0,使当n>=n0时,有f(n)7,8,9,10(交换1次) 循环次数:6次 交换次数:3次 从运行的表格来看,交换几乎和冒泡一样糟。事实确实如此。循环次数和冒泡一样 也是1/2*(n-1)*n,所以算法的复杂度仍然是O(n*n)。

由于我们无法给出所有的情况,所以 只能直接告诉大家他们在交换上面也是一样的糟糕(在某些情况下稍好,在某些情况下稍差)。 3.选择法: 现在我们终于可以看到一点希望:选择法,这种方法提高了一点性能(某些情况下) 这种方法类似我们人为的排序习惯:从数据中选择最小的同第一个值交换,在从省下的部分中 选择最小的与第二个交换,这样往复下去。 #include

以下为关联文档:

关于c语言编写游戏或软件学完C语言程序设计,有了C语言的基础,有了基础可以去研究下SDK(就是你要的那些图形界面设计)了,也可以去研究C++ ,什么是SDK呢。微软当初封装了两个库。一个是基于C语言的。一个是...

使用c语言的游戏引擎有哪些分清楚引擎和框架的区别…… 框架方面,常见的包括SDL,Allegro,以及SFML的C绑定;注意这些框架都主要是实现一些比较底层的功能,如窗口建立,简单输入事件,2d绘图函数封装等,并且基本...

LUA脚本语言在网络游戏编写中主要是干什么用的LZ要学LUA的话一定要去看书 Programming in Lua不一定要买纸质的 至少要有个电子档的 在序言里就已经说了 Lua本身是作为一种扩展语言来定位的 所以本身没有很强大的库 而它...

学前儿童语言教育幼儿前书写经验包括哪些内容一、语言是人类最重要的交际工具。 现代社会,经济发展,人们交往日益频繁,语言交际能力的重要性显著增加。未来的社会不仅要求人人都会说普通话,而且要具备相当水平的说话能力。...

幼儿园小班语言小蜜蜂的教案怎么写更多幼教相关知识:点击“中国幼儿教育网”即可进入 活动目标: 1、认识常见的昆虫并知道它们的运动方式。 2、在学习儿歌的基础上能大胆创编儿歌。 3、能积极参与活动,在语言游...

幼儿园小班教案语言蜜蜂模仿秀一、活动目标: 1、引导幼儿在模仿小动物的活动中获得快乐。 2、培养幼儿主动同别人打招呼、问好的习惯。 二、活动课时:1 三、活动准备: 动物卡片、头饰、录音机、 四、活动重...

有益学习语言的游戏有哪些需要谨慎对待的事情: 如果你的孩子极少出声,很少环顾四周,或者无法重复简单音节,那么你需要听听专业医生的建议了,多数情况下,你的宝宝需要接受听觉测试。 10个有益学习语言的游戏...

中班语言教案剪头发重难点活动目的:1、尝试用撕纸、卷纸、涂色等多种操作形式体验游戏。 2、乐于参与集体游戏,感受学做理发师的快乐。 材料准备:理发用品玩具、蜡笔、铅笔。 活动过程:一、引起兴趣 1、...

请问一下有谁能总结数据结构中排序章内介绍各种算法的时间复杂1.插入排序:每次将一个待排的记录插入到前面的已经排好的队列中的适当位置。 ①.直接插入排序 直接排序法在最好情况下(待排序列已按关键码有序),每趟排序只需作1次比较而不需要...

推荐阅读
图文推荐