最近几天看了一眼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个(怕麻烦),有兴趣的可以试试,由于能力原因,如有不足请荐谅,
- dim sint(4)
- for i=1 to 4
- do
- sint(i)=inputbox("请输入第"&i&"个数据","冒泡法测试")
- loop until isnumeric (sint(i))
- sint(i)=cint(sint(i))
- s="第"&i&"个数据:"& sint(i)&vbcrlf&s
- next
- msgbox s,,"原始数据"
- for j=1 to 3
- for k=1 to 4-j
- if sint(k) > sint(k+1) then
- tmp=sint(k+1)
- sint(k+1)=sint(k)
- sint(k)=tmp
- end if
- next
- next
- for a=1 to 4
- f="第"&a&"个数据:"&sint(a)&vbcrlf&f
- next
- msgbox f,,"处理后的数据"
复制代码
到最后说几句费话,学习真是累啊,现在WMI和ASP还不怎么懂,一天没看多少书就头疼,真是上火(也许是工作的原因?) |