发布于 2010-05-23 10:36:44
1楼
五个数值原来应该都是有地址的,也就是有原始顺序的,只需要定义好几件事情就可以:
1、是按照由大到小或由小到大排序;
2、排好序的地址如何存放,或者存放地址的定义;
3、排序方法可以是(以由大到小排序为例):
A、首选2个,进行比较,若1号数大于2号数,则把1号数放在规定好的一号存储区,2号数放在二号存储区,反之则将2号数放在一号存储区,1号数放在二号存储区;
B、选择3号数与二号存储区的数据(与目前最小的数)比较,若3号数小于目前最小的数即二号存储区的数据,3号数放在三号存储区,反之,将原二号存储区数据放在三号存储区,将3号数放在二号存储区,再将此3号数(目前二号存储区数据)与一号存储区数据(原最大数)比较,过程同A;
C、选择4号数、5号数逐个进行比较,方法:
a、可以是从最后向前逐个比较,这样比较,逐个向前调整,直至全部位置合理;
b、也可以不用上面B步骤中从后向前排序方式,可以是先进行由前向后比较方式进行;-道理相同
b、另外的办法应该是使用概率计算,当将4号数与前3个已经排好位置数进行比较时,可以是先比较中间数据,这样从几率上与从前从后都是一样的,不过操作步骤是比较固定的,2步完成;同理将5号数与前4个已经排好位置数进行比较时,可以是先比较二号或三号存储区数据;
说明:
数值只有5个,只有简单的比较什么方法也不是很复杂,若是有50个、500个..建议你建立一个功能块,将A的步骤在2个数间循环使用,避免繁琐程序编制,此时就需要考虑程序的工作量问题。
邮箱dancan@126.com
微博www.weibo.com/dancan