回复:求五个整数的排序,并保存到DB中

dancan

  • 帖子

    2161
  • 精华

    29
  • 被关注

    9

论坛等级:侠圣

注册时间:2003-11-25

普通 普通 如何晋级?

发布于 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
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。