在前面http://www.aspbc.com/tech/showtech.asp?id=1292中介绍了冒泡排序算法,这里的排序算法通常只是一种方向的排序,如从小到大,或者从大到小。
下面介绍这种鸡尾酒排序法,就是在冒泡的基础上增加了一种排序算法,即,在排序的同时,小的向左移动,大的向右移动,从到达到排序的目的,并且效果比普通的冒泡排序算法高近一倍。
<% Function cocktailSort_bubbleSort(byval b) ''鸡尾酒排序,双向冒泡 len2=ubound(b) for i = 0 to len2\2 '小的左移 for j = i+1 to len2-i t=b(j) if b(i)>t then b(j)=b(i) b(i)=t end if next '大的右移 for j = i to len2-i-1 t=b(j) if b(len2-i)<t then b(j)=b(len2-i) b(len2-i)=t end if next next cocktailSort_bubbleSort=b end Function a=array(49,38,65,97,76,13,27) response.write "初始顺序: " for i=0 to ubound(a) response.write a(i)&" " next response.write "<hr>" a = cocktailSort_bubbleSort(a) response.write "最终排序结果:" for i=0 to ubound(a) response.write a(i)&" " next %>cocktailSort_bubbleSort(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
这里的cocktailSort_bubbleSort函数就是双向冒泡排序法。
原创文章,转载需注明来源www.aspbc.com(asp编程网),谢谢。