Board logo

标题: [分享]简单的了解一下VBS冒泡排序 [打印本页]

作者: wc726842270    时间: 2011-1-27 00:57     标题: [分享]简单的了解一下VBS冒泡排序

最近几天看了一眼VB的书,偶然看见了冒泡法排序,觉的还是挺不错的,想了想觉得有必要分亨一下,所以......
  首先先说明一下什么是冒泡排序
                                                       冒泡排序
  冒泡排序是常见的一种排序方法,该排序的思路是从数组的第一项开始,每一项(I)都与下一项(I+1)进行比较,如果下一项的值较小,就将这两项的位置交换,从而使你值较小的数据项移动到上面,这种操作反复进行,直到数组结束.然后再回到开头,进行重复处理,当整个数组自始至终再也不出现项目交换时,全部数据的排序结束.
  举个例子,为了把一组数(10 7 3)按上升顺序排序,排序思序如下,
1 (10 7 3)比较10和7,因为10>7,所以交换位置,变成(7 10 3)再用10和3比较,因为所以交换位置,变成(7 3 10)
2 7和3比较,因为7>3交换位置,变成(3 7 10),比较7和10,因为7<10,不交换位置,至此,可以认为数据已排序完毕,但还要重复一次比较,进一步确认
以下是自已进行实验写的,数据个数不多,只有4个(怕麻烦),有兴趣的可以试试,由于能力原因,如有不足请荐谅,
  1. dim sint(4)
  2. for i=1 to 4
  3. do
  4. sint(i)=inputbox("请输入第"&i&"个数据","冒泡法测试")
  5. loop until isnumeric (sint(i))
  6. sint(i)=cint(sint(i))
  7. s="第"&i&"个数据:"& sint(i)&vbcrlf&s
  8. next
  9. msgbox s,,"原始数据"
  10. for j=1 to 3
  11.   for k=1 to 4-j
  12.     if sint(k) > sint(k+1) then
  13.          tmp=sint(k+1)
  14.          sint(k+1)=sint(k)
  15.          sint(k)=tmp
  16.     end if
  17.   next
  18. next
  19. for a=1 to 4
  20. f="第"&a&"个数据:"&sint(a)&vbcrlf&f
  21. next
  22. msgbox f,,"处理后的数据"
复制代码

到最后说几句费话,学习真是累啊,现在WMI和ASP还不怎么懂,一天没看多少书就头疼,真是上火(也许是工作的原因?)
作者: broly    时间: 2011-1-27 01:30

学习VBS,那么ASP可以不用学习的,那个是网络编程,编网页的,如果你想学习的时候再学吧。
WMI感觉就很有用,必学。
作者: wc726842270    时间: 2011-1-27 01:51     标题: 回复 2楼 的帖子

多谢指点,我也觉的那东西很乱,那就以后再说吧,(前几天到刚上查了一下视频教程,感觉ASP的不比PS的少啊,真是上火,)
问一下VBS能用GOTO么?刚才本想用GOTO来着,但是没成功,实在是没办法只好用的DO......LOOP

[ 本帖最后由 wc726842270 于 2011-1-27 02:52 编辑 ]
作者: broly    时间: 2011-1-27 10:56

Goto语句如果想跟批处理那样用法,在VB上才行

[ 本帖最后由 broly 于 2011-1-27 11:26 编辑 ]
作者: broly    时间: 2011-1-27 11:21

只能在发生错误是用到
  1. On Error GoTo 0
复制代码



[ 本帖最后由 broly 于 2011-1-27 11:24 编辑 ]
作者: wc726842270    时间: 2011-1-27 16:25     标题: 回复 5楼 的帖子

呵呵,看来我有些追求极端了,多谢了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2