拍卖行辅助按键精灵排序算法之冒泡法教程.doc

拍卖行辅助按键精灵排序算法之冒泡法教程.doc

ID:52200462

大小:199.00 KB

页数:7页

时间:2020-03-24

拍卖行辅助按键精灵排序算法之冒泡法教程.doc_第1页
拍卖行辅助按键精灵排序算法之冒泡法教程.doc_第2页
拍卖行辅助按键精灵排序算法之冒泡法教程.doc_第3页
拍卖行辅助按键精灵排序算法之冒泡法教程.doc_第4页
拍卖行辅助按键精灵排序算法之冒泡法教程.doc_第5页
资源描述:

《拍卖行辅助按键精灵排序算法之冒泡法教程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、怎么快速制作游戏扫拍卖行辅助:按键精灵排序算法之冒泡法教程我们借助游戏中的拍卖行,来讲解下如何用冒泡排序来实现。一、算法原理:冒泡排序(BubbleSort)      冒泡排序是最慢的排序算法,但也是新手最容易上手的一个排序方法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n^2)的算法。二、算法的复杂度      有没有同学问,O(n^2)的算法是什么呢?这是其实是衡量算法速度快慢的一个指标,我们称之为算法的时间复杂度。时间复杂越大,算法的执行效率越低。      当然,并不是越快的算法,一定

2、越好。算法还有另一个指标,叫空间复杂度,即算法占用多少空间,这个和内存息息相关。一个算法可能很快,但是它占用的内存多,不一定耗得起。      所以呢在不同的场合,我们需要根据不同的要求,会选择最合适的算法。三、如何计算时间复杂度时间复杂度,其实就是算法中某一语句循环执行的次数。例如:冒泡排序法的原理Fori=1Ton    Forj=1Ton          冒泡排序    NextNext    这个算法的时间复杂度,即“冒泡排序”这个语句的执行次数。当i=1的时候,Forj=1Ton:冒泡排序:Next,“冒泡排序”这个语句被执行了n次。当i=2的时候,For

3、j=1Ton:冒泡排序:Next,“冒泡排序”这个语句又被执行了n次。当i=3的时候,Forj=1Ton:冒泡排序:Next,“冒泡排序”这个语句又被执行了n次。……当i=n的时候,Forj=1Ton:冒泡排序:Next,“冒泡排序”这个语句又被执行了n次。    综上,“冒泡排序”这个语句被执行了n个n次,即n*n=n^2次。所以冒泡排序的时间复杂度即为n^2,我们记为O(n^2)    注:1.如果算法中语句执行次数为一个常数,则时间复杂度为O(1)。          2.若一个算法的时间复杂度为O(n)=n^2+3n+4,我们只取算式中最高次方,即O(n^2)

4、。四、算法的实现2014-8-2718:26上传下载附件(34.5KB)算法讲解:'冒泡排序            //经过n-1趟子排序完成的,它的时间复杂度为O(n^2)            //优点: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)为数组中

5、最大值9.从su(1)到su(M),重复5-8步骤,实现su数组最后为从大到小的降序排列。五、代码具体实现:Dimi,jsu="105875

6、502150

7、411400

8、63525

9、111925

10、90750"  //获取到的物品价格su=Split(su,"

11、")M=UBound(su)  //升序排序    Fori=0ToUBound(su)-1  //i=0的时候j循环是从1循环到数组最小不  第一轮循环,su(0)和su(1)-su(5)进行比较选择6个数中最小的数放到su(0)  第二轮循环su(1)和su(2)-su(5)比较      Forj=i+1t

12、oUBound(su)        Ifint(su(i))>int(su(j))Then//数组是字符串的所以需要用int改为数值型否则会出现错误          tran=su(j)          su(j)=su(i)          su(i)=tran  //如果前一个数比后一个数大,就交换位置        EndIf      Next  Next//降序排序  Fori=0ToUBound(su)-1        Forj=i+1toUBound(su)        Ifint(su(i))

13、所以需要用int改为数值型否则会出现错误          tran=su(j)          su(j)=su(i)          su(i)=tran  //如果后一个数比前一个数大,就交换位置        EndIf      NextNext六、代码的每一次实现原数组:"105875

14、502150

15、411400

16、63525

17、111925

18、90750"第一次循环:      取su(0)的值105875,与su(1)对比。su(1)>su(0),则相互交换:      "502150

19、105875

20、411400

21、63525

22、11192

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。