【VB开源代码栏目提醒】:网学会员--在 VB开源代码编辑为广大网友搜集整理了:冒泡排序在VB程序中的实现 - 计算机理论绩等信息,祝愿广大网友取得需要的信息,参考学习。
年第期论坛辩技信息冒泡排序在程序中的实现陈忠坚广东省财政职业技术学校计算机专业部广东广州【摘要】冒泡排序是一种典型且简单的交换排序算法在多种处理情形下都可以使用。
本文根据一个探作任务对冒泡排序在中的实现进行
代码的编写及分析同时。
时提高算法和程序运行的效率提出几点设想。
以便对
代码进行优化。
【关键词】冒泡排序程序应用在算法中最典型的排序方法是冒泡排序。
其基本思想是两两比较待排序记录的关键字。
发现两个记录的次序相反时即进行交换直到没有反序的记录为止。
设被排序的记录数组【…】垂直竖立将每个数组元索【】看作是一个气泡。
每次由相邻的两个气泡【】和【】进行比较如果【】【】那么就交换两个气泡然后再比较】和【】。
那么每次比较后较重的气泡就会向下沉轻的气泡就会向上升。
以此类推直到所有的气泡都有序排列。
那么在中如何实现冒泡排序呢从一个任务谈起任务要求本任务要求利用数组及循环语句对一组无序的数据进行从小到大的排序。
效果图如下任务实施分析从效果图来看界面包括两个标签和两个命令按钮。
其中上甄的标签用于显示排序前的无序数据。
而这些数据是在窗体装载的时候随机产生并保存在数组的各元素中。
排序后的数据则在下面的标签显示排序工作通过单击“排序”命令按钮触发。
这个任务的关键在于比较和交换位置。
初始状态下数组的各元素是无序的。
通过若干次的比较和交换形成了一个从小到大的排列顺序。
从上述分析来看需要利用循环语句及分支语句。
代码分析数组的定义在利用数组前我们首先进行声明和定义。
用下面的语句定义数组并确定数组元素的数据类型为整型。
根据我们的日常习惯。
利用蹴语句把数组的下标确定为从开始。
∞∞学盱由随机函数产生数组元素利用循环结构产生数组的各元素并在标签中显示。
哦—日Ⅱ髓跏酮’””姻嘣叩佣在这段
代码中。
利用函数随机产生各效组元素。
函数返回一个小于但大于或等于的单精度的数。
丽在调用函数前使用曲∞语句初始化随机数以便在每次调用函数时产生不同的随机数。
由于在函数前使用了函数。
所以备数组元素都是整数范围在和之间。
排序过程利用双重循环对数组元素进行比对确定其排序后的位置并在标签且中显示排序后的效果。
从
代码进行分析我们可以看出先把数组元素《作为最小数值的元素把它与数组元素《进行比对如果元素《小于元素《则进行交换。
其他比对依此类推。
咖姗《删《””哟【嘶明排序过程分析第一次扫描分析如下在第一次的比较中由于蜥。
所以交换位置依此类推经过第一次扫描后最大的数就被放到最后了第二次扫描分析如下由于所以位置没有交换由于。
所以位置交换直到、位置没有交换。
形成第二次扫描的结果如下其他扫攒过程依此类推。
直至得出最后结果■泡排序的特点时间复杂度原始数据正序蔼一趟排序比较次数嘶原始数据反序需趟排序。
一般情况下虽然不一定需要趟排序。
但由于每次数据位置的改变需要次移动操作因此总时间复杂度高于直接插入排序。
算法稳定性冒泡排序是就地排序。
且它是稳定的。
冒泡排序的不对称性若文件的初始状态是正序的一越扫描即可完成排序若初始文件是反序的需要进行一趟排序。
而造成其时间度不对称性的原因在于其每次排序只能使其中最大下转第页万方数据科技信息论坛年第期上接第页基于内容的多媒体检索发展展望多途径的多媒体检索。
虽然现在多媒体检索研究的重点是基于内容的多媒体信息检索但是基于文本的多媒体信息检索同样是很重要的方法甚至在某些情况下效果优于基于内容的检索。
另外未来还会有新的检索方法出现。
我们根据现有的人们的思维方式和世界潮流还可以提出一种基于体验的检索方法也就是达到根据人的自身体验进行明确的或者模糊的信息检索的目的这应该是未来多媒体检索的一个发展方向鸱。
多种多媒体信息库的结合目前的多媒体信息库多为分类的信息库。
例如图像数据库、声音数据库、视频数据库等。
这些分类数据库增加了人们的检索时间和
程序。
而对这些数据库进行整合应该不是一件很难的技术问题。
多特征检索技术的发展多特征检索技术是指综合利用两种或多种媒体的特征、综合利用其它学科的成果。
这是当代所有学科的发展方式更是我们多媒体信息检索的发展需求。
快速算法的探求由于多媒体信息的数据量相当大对它进行处理需要消耗大萤的时问因此寻找快速算法也是实现基于内容的多媒体检索必须研究的一个课题。
如果能实现算法上的突破将会对多媒体检索产生深远的影响。
总结语不管在多媒体检索技术如何发展从基于内容的多媒体检索的意义上来看有一点是可以肯定的多媒体的检索的成熟将创造出巨大的社会价值而且将会改变人们的生活方式。
它将在社会的各个方面得到广泛的运用。
也许在不久的将来我们就能在多媒体数据库、远程医疗、数字图书馆奎程通讯等领域享受到多媒体检索给我们的生活带来的巨大方便。
《【参考文献】吴蒲多媒体信息检索研究情报杂志】周文昭基于内容的图像检索系统的最新进展
计算机工程与应用。
老松杨等视频检索综述数字图书馆论坛】陈明多媒体基础北京清华大学出版社儿朱爱红基于内容的音频检索综述微机发展【责任编辑王静】上接第页上可以确定领域本体建设的需求情况。
为了指导后续
工作应该编写一份本体构建的“需求分析规格说明书”以
文档的形式明确需求分析的结果。
基于本体的教学资源库系统架构教学资源库系统架构采用了基于浏览器服务器数据库服务器结构采用在技术的基础之上加入本体。
是语义表示的基础句法层通过使用内嵌和可带有属性的元素表示信息但这些标记信息不具有解释数据语义内容的能力这时由制定的就成为枷之后的信息表示基础标准。
一方面解决异构数据语法问题另一方面解决其语义异构
问题。
其模式如图由上至下各层服务功能如下应用表示层即用户界面层根据具体的应用和用户计算环境采用合适的信息访问技术或应用原型。
业务中间件层由语法层和本体层组成。
语法层提供必要的数据转换功能或工具。
有一个代理程序运行于中间层通过它来访问数据库中的数据、将此数据与格式进行相互转换和输出
文档这样可获取的数据来源可以不必局限于某台固定的敷据库服务器。
本体层主要解决在语法层屏蔽下的语义的异构在数据提取时我们往往会因为语义的异构而得不到正确答案所以基于本体主要解决语义异构的刷题。
数据源层处于最低层是
系统的数据提供者由不同来源的数据构成。
包括各种类型的数据库、文件、多媒体等信息。
为了进行统一处理系统必须用一种公共模趔表示来自于不同信息源的各种数据。
因此采用作为集成层的数据描述工具可根据集成应用土接第页的一个数下沉到底部。
对任务中冒泡排序
代码的改进设想的需要创建啪描述各种类型的对象。
所以本系统采用模型作为公共模型。
结束语本体论是科学研究的基础。
也是人工智能的基础它在思维、信息传播、组织和检索中发挥着熏要作用。
建设本体的作用主要是能够在人与
软件智能主体之间对信息结构达成共同的认识方便人机对话能够使本领域的知识得到共辜和重用使领域内不同的系统、模型之间能够进行互操作。
本文提出用本体论方法来组织资源。
用以懈决目前教学资源组织不合理的问题。
那么本文所研究的基于本体的教学资源库依照其自身的特点在众多资源库中的优势是显而易见的。
设计出的资豫库将满足对新的教学资源的要求有着较高的实际应用价值。
【参考文献】王小捷钟义信基于的荚汉机器翻译研究【月中文信息学报。
—金芝基于本体的需求自动获取阴计算机学报鸽栅】宋炜张铭语义网简明救程【】高等教育出版社【焦玉英张璐基于科的语义检索模型槊构田图书馆学刊晰一杜小勇马文蜂学科领域知识本体建设方法研究明图书情报工作责任编辑翟成粱】上述
代码实现的排序效率并不高这也是冒泡排序的一个明显缺点。
为了提高程序运行的效率我们可以从下面的几个方面考虑如果在某一趟循环中没有任何数据交换发生则表明数据已经排序完毕。
那么剩余的循环就不需要再执行了。
比如我们的数据按照从小到大排列那么在第一趟比较就不会有任何数据交换发生。
这时需在程序
代码中设一个记录是否发生交换的标志当其为时继续扫描当其为时停止扫描。
有效减少扫描次数。
在冒泡排序的每趟扫描中。
如果能记住最后一次交换发生的位置船锄婶对减少扫描和提高执行效率也能有所帮助。
因为该位置之前的相邻记录已经有序故下一趟排序开始的时候到艏辩已经是有序的了吼趿到是无序区。
所以一趟排序可能使当前有序区扩充多个记录即较大缩小无序区范围丽非递减以此减少排序趟数。
在排序过程中交替改变扫描方向即先从下扫到上荐从上扫到下。
来回地进行扫描这样就得到双向冒泡排序算法也就是利用每次扫描后得到的最后一次交换发生的位置鹅辩改变扫描方向。
当数据量比较大的时候双向扫描冒泡排序会有更好的效率但是效率并没有根本的提升。
【参考文献】李宝山淳丕瑾。
主编程序
设计基础∞案例教程北京机械工韭出版社。
。
】美】谢弗蓍数据结构与算法分析版张铭等。
译北京电子工业出版社。
。
责任编辑汤静】万方数据