TC官方合作论坛

 找回密码
 立即注册
查看: 1264|回复: 11
打印 上一主题 下一主题

[已解决] 用TC完成以下算法,有偿

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-25 18:19:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 zajanmy 于 2014-5-25 18:36 编辑

2,220,2,230,4,247,5,226,7,242,逗号,235
通过比较220,230,247,226,242,235的大小从而排序(从小到大)它们前面的元素
比如226小于230  就把226前面的5和230前面的2调换
最后只保留2,2,4,5,7,逗号的排序结果

求解
回复

使用道具 举报

8#
发表于 2014-5-25 21:25:27 | 只看该作者
本帖最后由 jimye0526 于 2014-5-25 21:28 编辑

  1.     变量 原始字符串, 数组大小 = 0, 计次, 计次1, 排序后的字符串
  2.     变量 原始字符组 = 数组[0], 字符组 = 数组[0], 排序字符组 = 数组[0]
  3.    
  4.     原始字符串= "2,220,2,230,4,247,5,226,7,242,逗号,235"
  5.     字符串.分割(原始字符串, ",", 原始字符组)
  6.     数组空间.大小(原始字符组, 数组大小)
  7.    
  8.     遍历(计次=0; 计次<数组大小; 计次++)
  9.         如果(计次%2 == 0)
  10.             数组空间.增加(字符组, 原始字符组[计次] & "," & 原始字符组[计次+1], 1)
  11.         否则
  12.             数组空间.增加(排序字符组, 原始字符组[计次], 1)
  13.         如果结束
  14.     遍历结束
  15.    
  16.     数组空间.排序(排序字符组, 2)
  17.    
  18.     遍历(计次=0; 计次<数组大小/2; 计次++)
  19.         遍历(计次1=0; 计次1<数组大小/2; 计次1++)
  20.             如果(字符串.查找字符串(字符组[计次1], "," & 排序字符组[计次]) > -1)
  21.                 排序后的字符串 = 排序后的字符串 & 字符串.左侧(字符组[计次1], 字符串.查找字符串(字符组[计次1], ",") ) & ","
  22.             如果结束
  23.         遍历结束
  24.     遍历结束
  25.    
  26.     字符串.移除(排序后的字符串, 1, 假)
  27.    
  28.     调试输出(排序后的字符串)
复制代码

随便给你写了个,你的例子是能可以排序的,不过如果第二个数字字符(就是220,230,247这些)是出现相等的数字,排序就会出现错误的。

如果这个对你有用的话,你的有偿就打过来吧,支付宝:291435773@qq.com

回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2014-5-26 08:52:58 | 只看该作者

有</p>  自己处理一下
回复 支持 反对

使用道具 举报

11#
 楼主| 发表于 2014-5-25 22:15:12 | 只看该作者
本帖最后由 zajanmy 于 2014-5-26 08:52 编辑
  1. <p>namespace 冒泡排序</p><p>function start_click()
  2.     edit.settext("edit1",冒泡排序.start(edit.gettext("edit0")))
  3. endfunction</p><p>function start(String)//传入需处理的字符串
  4.     var arr0,arr0_count
  5.     str.split(String,",",arr0)//按逗号分隔返回给arr0
  6.     arraysp.size(arr0,arr0_count)//计算arr0数组大小
  7.     if(arr0_count%2==1)//判断元素个数是否是偶数个
  8.         help.messagebox(statictext.gettext("StaticCountError"))
  9.     endif
  10.     count = arr0_count/2//元素个数除以2给count
  11.     arr1 = array[2][count] //arr1[2][元素个数/2],元素个数等于arr0的元素个数
  12.     for(i=0;i<arr0_count;i++)
  13.         if(i%2==0)//i为偶数
  14.             j = i/2   
  15.             arr1[0][j] = arr0[i]
  16.             else   //i为奇数
  17.                 j = i/2-0.5
  18.                 arr1[1][j] = arr0[i]
  19.             endif
  20.         endfor
  21.         for(i=0;i<count;i++)
  22.             for(j=0;j<count-i-1;j++)
  23.                 if( arr1[1][j]>arr1[1][j+1])
  24.                     冒泡排序.changevar(arr1[0][j],arr1[0][j+1])
  25.                     冒泡排序.changevar(arr1[1][j],arr1[1][j+1])
  26.                 endif
  27.             endfor
  28.         endfor
  29.         ret
  30.         for(i=0;i<count;i++)
  31.             ret &= arr1[0][i]
  32.         endfor
  33.         return ret
  34.     endfunction
  35.    
  36. function changevar(&var1,&var2)
  37.     temp = var1
  38.     var1 = var2
  39.     var2 = temp
  40. endfunction</p><p>endnamespace
  41. //空间结束</p>
复制代码

回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2014-5-25 22:10:06 | 只看该作者
jimye0526 发表于 2014-5-25 21:25
随便给你写了个,你的例子是能可以排序的,不过如果第二个数字字符(就是220,230,247这些)是出现相等的数字 ...

大大你回慢了。。我找群里的人(论坛里的,昵称q273814)解决了。。也打款给他了。。。。我说的是实话  
回复 支持 反对

使用道具 举报

9#
发表于 2014-5-25 21:30:13 | 只看该作者
分割,然后按冒泡算法写一下,注意一下比较的位置和最后要保存的数字的位置就好了
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2014-5-25 20:12:49 | 只看该作者
jimye0526 发表于 2014-5-25 19:13
有偿多少,可以找我
399260802

你要多少?太多没意思
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2014-5-25 20:11:54 | 只看该作者
本帖最后由 zajanmy 于 2014-5-25 20:17 编辑
rainshine 发表于 2014-5-25 19:57
pascal程序设计 呢本书上貌似还有这个 是个学生成绩排序- -。

TC的遍历语句貌似不直接支持步长为2...而且步长在遍历()里不好省略。。总而言之TC的遍历 我赶脚不强悍啊。。   所以  大大你说的参考  我用TC无法模仿。。
回复 支持 反对

使用道具 举报

5#
发表于 2014-5-25 19:57:01 | 只看该作者
pascal程序设计 呢本书上貌似还有这个 是个学生成绩排序- -。
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2014-5-25 19:21:30 | 只看该作者
本帖最后由 zajanmy 于 2014-5-25 19:24 编辑
冷月无痕 发表于 2014-5-25 19:13
2,220,2,230,4,247,5,226,7,242
既然是分组的 最好用不同的分隔符 比如
2,220;2,230;4,247;5,226;7,242

2,220;2,230;4,247;5,226;7,242这样也行    但即使这样我也没思路啊。。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-12-26 06:13 , Processed in 0.092140 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表