




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
怎么快速制作游戏扫拍卖行辅助:按键精灵排序算法之冒泡法教程我们借助游戏中的拍卖行,来讲解下如何用冒泡排序来实现。一、算法原理:冒泡排序(BubbleSort) 冒泡排序是最慢的排序算法,但也是新手最容易上手的一个排序方法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n2)的算法。二、算法的复杂度 有没有同学问,O(n2)的算法是什么呢?这是其实是衡量算法速度快慢的一个指标,我们称之为算法的时间复杂度。时间复杂越大,算法的执行效率越低。 当然,并不是越快的算法,一定越好。算法还有另一个指标,叫空间复杂度,即算法占用多少空间,这个和内存息息相关。一个算法可能很快,但是它占用的内存多,不一定耗得起。 所以呢在不同的场合,我们需要根据不同的要求,会选择最合适的算法。三、如何计算时间复杂度时间复杂度,其实就是算法中某一语句循环执行的次数。例如:冒泡排序法的原理For i = 1 To n For j = 1 To n 冒泡排序 NextNext 这个算法的时间复杂度,即“冒泡排序”这个语句的执行次数。当i=1的时候,For j = 1 To n:冒泡排序:Next,“冒泡排序”这个语句被执行了n次。当i=2的时候,For j = 1To n:冒泡排序:Next,“冒泡排序”这个语句又被执行了n次。当i=3的时候,For j = 1To n:冒泡排序:Next,“冒泡排序”这个语句又被执行了n次。当i=n的时候,For j = 1To n:冒泡排序:Next,“冒泡排序”这个语句又被执行了n次。 综上,“冒泡排序”这个语句被执行了n个n次,即n*n=n2次。所以冒泡排序的时间复杂度即为n2,我们记为O(n2) 注:1.如果算法中语句执行次数为一个常数,则时间复杂度为O(1)。 2.若一个算法的时间复杂度为O(n)=n2+3n+4,我们只取算式中最高次方,即O(n2)。 四、算法的实现2014-8-27 18:26 上传下载附件 (34.5 KB) 算法讲解:冒泡排序 /经过n-1趟子排序完成的,它的时间复杂度为O(n2) /优点:1.代码简单易懂;2.具有稳定性1.获取到物品价格,存入数组su2.获取到数组的个数,即物品的总数,记为M3.循环开始4.获取到数组su(0)的数值5.su(0)与数组中剩余的数值对比(su(1)-su(M),若数值大于su(0),则相互调换6.Su(0)存储数组中最大的值7.循环到数组最后一个数值su(M)8.结束第一次循环,数组的第一个元素su(0)为数组中最大值9.从su(1) 到su(M),重复5-8步骤,实现su数组最后为从大到小的降序排列。五、代码具体实现:Dim i,j su= 105875|502150|411400|63525|111925|90750/获取到的物品价格su=Split(su, |)M = UBound(su)/升序排序For i = 0 To UBound(su)-1 /i=0 的时候 j循环是从 1循环到数组最小不 第一轮循环,su(0)和su (1)-su(5)进行比较 选择6个数中最小的数放到su(0) 第二轮循环 su(1)和su(2)-su(5)比较 For j = i+1 to UBound (su) If int(su(i) int (su(j) Then / 数组是字符串的 所以需要用int改为数值型 否则会出现错误 tran = su(j) su(j) = su(i) su(i) = tran /如果前一个数比后一个数大,就交换位置 End If Next Next / 降序排序 For i = 0 To UBound(su)-1 For j = i+1 to UBound (su) If int(su(i)su(0),则相互交换: 502150|105875|411400|63525|111925|90750 然后拿su(0)的值502150,与su(2)-su(5)对比,没有比su(0)更大的值,不再交换,结束。第一次循环结束:502150|105875|411400|63525|111925|90750第二次循环: 取su(1)的值105875,与su(2)的值411400对比,su(2)su(1),则相互交换:502150|411400|105875|63525|111925|90750然后拿su(1)的值411400,与su(3)-su(5)对比,没有比su(1)更大的值,不再交换,结束。第二次循环结束:502150|411400|105875|63525|111925|90750第三次循环: 取su(2)的值105875,与su(3)的值63525对比,su(3)su(2),则相互交换:502150|411400|111925|63525|105875|90750然后拿su(2)的值111925,与su(5)的值90750对比,su(5)su(3),相互交换:502150|411400|111925|105875|63525|90750取su(3)的值105875,与su(5)对比,su(5)su(5),相互交换,循环结束。第五次循环结束:502150|411400|111925|105875|90750|63525此时数组已循环到最后,完成降序排列。七、知识拓展 按数量级递增排列,常见的时间复杂度有:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年科技电子产品贴牌加工及售后维护合同
- 2025房地产抵押贷款合同模板:绿色建筑版
- 2025年高科技企业实习生高新技术企业认定劳动合同
- 2025版砂石料行业知识产权保护合作合同范本
- 2025拆旧房屋产权置换服务合同范本
- 2025版高品质住宅社区联合开发合作协议书
- 2025年度水电工程安全生产教育与培训合同
- 2025保密协议:能源项目信息保密合同范本
- 2025年度返聘高级管理人才与跨国企业合作协议范本
- 2025年度套装门市场拓展与代理销售合同
- 绿色建筑概论 课件全套 第1-11章 绿色建筑概述-绿色建筑运营与维护
- 2025医务人员手卫生规范
- 医务人员行为规范
- 光伏电站安全培训
- GB/T 35267.4-2025清洗消毒器第4部分:内镜清洗消毒器
- 职工安置方案模板
- DB45T 1056-2014 土地整治工程 第2部分:质量检验与评定规程
- ISO9001工厂质量体系文件
- 2025年春季学期 形势与政策讲稿第五讲-从教育大国迈向教育强国
- 柴油发电机组操作培训
- 四川2024年12月四川省雅江县县乡机关度公开考调15名公务员笔试历年典型考题(历年真题考点)解题思路附带答案详解
评论
0/150
提交评论