TC官方合作论坛

标题: 数字 排序 的问题 大神过来看看吧 [打印本页]

作者: 1364770121    时间: 2016-2-23 11:27
标题: 数字 排序 的问题 大神过来看看吧
背景 :

我用 《找图ex》  找到了 多个图片,  返回来了一堆坐标(格式:id,x,y) “0,707,378|0,803,378|1,732,378|1,876,378|2,683,378|3,899,378|5,755,378|8,827,378” ,我想根据 x数值的大小对这些图片id进行从小到大的排序,应该得到的是一组日期20150813,请大神 给个思路,写个脚本更好。

作者: 1364770121    时间: 2016-2-23 11:27
大神 在哪里?

作者: 1364770121    时间: 2016-2-23 11:43
坐等大神
作者: 来不及的来得及    时间: 2016-2-23 12:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 1364770121    时间: 2016-2-23 12:54
具体点    找不到排序的命令啊
作者: 1364770121    时间: 2016-2-23 13:29
来不及的来得及 发表于 2016-2-23 12:46
把x坐标从小到大排序一下不就出来了?

具体怎么写啊   用什么命令?  什么思路?
作者: 1364770121    时间: 2016-2-23 14:07
站 等 大神
作者: 1364770121    时间: 2016-2-23 15:00
趴 等 大神 ……
作者: 言术    时间: 2016-2-23 15:04
功能 排序(字符串)
    变量 返回值="",临时
    变量 返回数组=数组(),临时数组1=数组(),临时数组2=数组()
    变量 大小=字符串分割(字符串,"|",返回数组)
    遍历(变量 i = 0; i < 大小-1; i++)
        如果(字符串分割(返回数组[i],",",临时数组1)!=3)
            调试输出("字符串分割异常")
            返回 假
        结束
        遍历(变量 j = i+1; j < 大小; j++)
            如果(字符串分割(返回数组[j],",",临时数组2)!=3)
                调试输出("字符串分割异常")
                返回 假
            结束
            如果(临时数组1["1"] > 临时数组2["1"])
                临时=返回数组[i]
                返回数组[i]=返回数组[j]        
                返回数组[j]=临时
                字符串分割(返回数组[i],",",临时数组1)
            结束
        结束
    结束
   
    遍历(变量 i = 0; i < 大小; i++)
        如果(返回值=="")
            返回值=返回数组[i]
        否则
            返回值=返回值&"|"&返回数组[i]
        结束
    结束
    返回 返回值
结束

功能 按钮0_点击()
    变量 字符串="0,707,378|0,803,378|1,732,378|1,876,378|2,683,378|3,899,378|5,755,378|8,827,378"
    调试输出(字符串)
    调试输出(排序(字符串))
结束
作者: 1364770121    时间: 2016-2-23 15:16
言术 发表于 2016-2-23 15:04
功能 排序(字符串)
    变量 返回值="",临时
    变量 返回数组=数组(),临时数组1=数组(),临时数组2=数组() ...

不行啊  大神   ,  排序 出来  应该是  2,x,y| 0,x,y| 1,x,y| 5,x,y| 0,x,y| 8,x,y| 1,x,y| 3,x,y

作者: 言术    时间: 2016-2-23 15:19
1364770121 发表于 2016-2-23 15:16
不行啊  大神   ,  排序 出来  应该是  2,x,y| 0,x,y| 1,x,y| 5,x,y| 0,x,y| 8,x,y| 1,x,y| 3,x,y
...


。。。。。
作者: 1364770121    时间: 2016-2-23 15:32
言术 发表于 2016-2-23 15:19
。。。。。

大神   能给说下 思路不   ,  你的代码  我得慢慢研究   ,我属于菜鸟级别  有的命令 还是看不懂 ……3q
作者: 言术    时间: 2016-2-23 15:42
1364770121 发表于 2016-2-23 15:32
大神   能给说下 思路不   ,  你的代码  我得慢慢研究   ,我属于菜鸟级别  有的命令 还是看不懂 ……3q ...

功能 排序(字符串)
    第一次分割,得到类似   0,707,378   数组
    遍历(变量 i = 0; i < 大小-1; i++)
        第二次分割,得到单个数字,这是基准数,将要和下面分割得到数对比大小
        遍历(变量 j = i+1; j < 大小; j++)
            第二次分割,得到单个数字,这是要对比的数,和上面分割得到数对比大小
            如果基准数大于要对比的数
            交换它们
            更新基准数,继续对比
        结束
    结束
   
    把数组再串成一个字符串
    返回 返回值
结束
作者: 1364770121    时间: 2016-2-23 15:55
言术 发表于 2016-2-23 15:42
功能 排序(字符串)
    第一次分割,得到类似   0,707,378   数组
    遍历(变量 i = 0; i < 大小-1; i++) ...

大神  你脑袋 是 八核的吧

我这单核的 都假死了   数组 还是弄不太明白   字符串分割  我会用 ,还有你写脚本的语法  和我这初级选手 写的不一样  ……  差距  啊   膜拜了
作者: jodon27    时间: 2016-3-2 08:42
学习一下!!
作者: jodon27    时间: 2016-3-2 08:42
学习一下!!
作者: jodon27    时间: 2016-3-2 08:42
学习一下!!
作者: 花落莫相离    时间: 2016-3-6 17:20
冒泡算法
  1. 变量 句柄集=数组(),缓冲值
  2.   句柄集[0]=28
  3.   句柄集[1]=15
  4.   句柄集[2]=10
  5.   句柄集[3]=30
  6.   //冒泡排序原理:依次比较相邻的两个数,当小数放在前面,大数放在后边
  7.   遍历(变量 i=0;i<3;i++)
  8.     //外层循环相当于控制相邻数据中的左边的数据
  9.     遍历(变量 q=i+1;q<4;q++)
  10.       //内层循环相当于控制相邻数据中右边的数据
  11.       如果(句柄集[i]>句柄集[q])
  12.         //表示第一个数据大于第二个数据,要进行位置互换
  13.         缓冲值=句柄集[i]
  14.         句柄集[i]=句柄集[q]
  15.         句柄集[q]=缓冲值
  16.       结束
  17.     结束
  18.   结束
  19.   遍历(变量 i=0;i<4;i++)
  20.     消息框("句柄集["&i&"]:"&句柄集[i])
  21.   结束
复制代码

作者: 1364770121    时间: 2016-3-7 18:19
花落莫相离 发表于 2016-3-6 17:20
冒泡算法

也是个大神   不过 我上回的那个还没弄懂  这个冒泡法  也迷糊 ……  长路慢慢  慢慢琢磨吧

作者: 250366688    时间: 2016-3-11 02:12
var  a =  “0,707,378|0,803,378|1,732,378|1,876,378|2,683,378|3,899,378|5,755,378|8,827,378”
var 临时数组=数组()
var pd=字符串分割(a,"|",临时数组)
var len= 数组大小(临时数组)
var 数组数组=数组()
var 当前最大值=0
var 当前最大值的字符串
var 排序后的数组
遍历(i=0;i<len;i++)
字符串分割(临时数组【i】,”,“,数据数组)
如果(数据数组[1]>当前最大值)
当前最大值=数据数组[1]
当前最大值的字符串=临时数组[i]
结束
数组末尾追加元素()
//这个命令我忘了懒得查文档大致的意思就是在新的数组里吧最大的那一组数组追加进去往下就好写了,这个遍历是提取出字符串里你说的那个x值 应该是指的x坐标也就是中间的那一组,到这以后把重新调整的最大的字符串取出来放进了新的数组,然后把 “0,707,378|0,803,378|1,732,378|1,876,378|2,683,378|3,899,378|5,755,378|8,827,378”这个字符串中 提取到的最大的那个换成空格 再次传进去就是第二大的,那么新的数组排列出来以后就是 从大到小了,至于怎么用那就看你了



结束
作者: 250366688    时间: 2016-3-11 02:12
本帖最后由 250366688 于 2016-3-11 02:15 编辑

var  a =  “0,707,378|0,803,378|1,732,378|1,876,378|2,683,378|3,899,378|5,755,378|8,827,378”
var 临时数组=数组()
var pd=字符串分割(a,"|",临时数组)
var len= 数组大小(临时数组)
var 数组数组=数组()
var 当前最大值=0
var 当前最大值的字符串
var 排序后的数组
遍历(i=0;i<len;i++)
字符串分割(临时数组【i】,”,“,数据数组)
如果(数据数组[1]>当前最大值)
当前最大值=数据数组[1]
当前最大值的字符串=临时数组
结束
数组末尾追加元素()
//这个命令我忘了懒得查文档大致的意思就是在新的数组里吧最大的那一组数组追加进去往下就好写了,这个遍历是提取出字符串里你说的那个x值 应该是指的x坐标也就是中间的那一组,到这以后把重新调整的最大的字符串取出来放进了新的数组,然后把 “0,707,378|0,803,378|1,732,378|1,876,378|2,683,378|3,899,378|5,755,378|8,827,378”这个字符串中 提取到的最大的那个换成空格 再次传进去就是第二大的,那么新的数组排列出来以后就是 从大到小了,至于怎么用那就看你了
-------------------这个思路的原理就是 找到字符串里  中间那个最大的值所在的字符串,存进数组,然后用字符串替换剔除最大的那个,很容易写,但是懒得弄了。


结束

作者: 1364770121    时间: 2016-3-11 18:20
250366688 发表于 2016-3-11 02:12
var  a =  “0,707,378|0,803,378|1,732,378|1,876,378|2,683,378|3,899,378|5,755,378|8,827,378”
var 临 ...

好吧   又是个大神




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1