登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:求助:用两重循环嵌套来对4个数的大小排序,使用的是冒泡法,请帮我指正我的程序,

点击:3533 回复:2

谢谢各位对我的帖子的关注和回复,现在我想用对4个数进行大小排序,我把所遍写的程序运行后,结果不对,我用的是两重循环嵌套,有没有更好的方法,或对我这种方法的改正,不胜感激,程序如下:
NETWORK 1//对四个数赋值
LD SM0.0
MOVW +3, VW0
MOVW +4, VW2
MOVW +1, VW4
MOVW +2, VW4
NETWORK 2 //外循环初始化
LD SM0.0
MOVD &VB0, VD50
MOVW +0, VW100
NETWORK 3 //外循环开始
LD SM0.0
FOR VW100, +1, +3
NETWORK 4//对内循环初始化
LD SM0.0
MOVW +3, VW150
MOVW +0, VW102
MOVD &VB0, VD50
MOVW +0, VW300
NETWORK 5//内循环开始
LD SM0.0
FOR VW102, +1, VW150
NETWORK 6//内循环执行内容
LDW>= *VD50, *VD52
MOVW *VD50, VW300
MOVW *VD52, *VD50
MOVW VW300, *VD52
NETWORK 7//内循环地址调整
LD SM0.0
+D +2, VD50
NETWORK 8//内循环结束
NEXT
NETWORK 9//外循环地址调整
LD SM0.0
DECW VW150
+D +2, VD50
NETWORK 10//外循环结束
NEXT
04-09-16 22:27
呵呵,*VD52是什么东东?
04-09-17 20:26
最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。
04-09-17 20:28

工控新闻

更多新闻资讯