类似华容道的算法求教 ( 积分: 160 )

  • 主题发起人 主题发起人 qiqi0715
  • 开始时间 开始时间
Q

qiqi0715

Unregistered / Unconfirmed
GUEST, unregistred user!
类似华容道的题目。*表示空格。
实现这样的转换: 283
164
7*5
变成:123
8*4
765
按顺时针方向排列,空格在中间。
帮忙给个算法,谢谢。
 
类似华容道的题目。*表示空格。
实现这样的转换: 283
164
7*5
变成:123
8*4
765
按顺时针方向排列,空格在中间。
帮忙给个算法,谢谢。
 
很有意思, 我研究研究.初始的排列有规律吗?
 
不明白,能解释更清楚点吗?
 
没有规律。随机的1~8加个空格。
 
算法倒是挺简单,不过不是最优算法,需要么?
简单把算法叙述一下:
总的来说就是把数字一个一个连到尾巴上。要连到尾巴上的数只要想办法放到中间位置即可。循环直至全部数连到尾巴上。
 
比如用数组x[8]表示8个数
12345678
从不同位置移动到指定位置,位置不一样,路径也不一样。
 
明白你的意思。现在问你是否需要最优算法,不需要最优可以给你一个。
 
就是一个快速排序算法,
* 号排到最后, 12345678*
然后放到对应格子里面
 
快速排序算法?你以为相临两个数说换就换啊???
 
每次换必须有*参与~
 
数字在不同位置时移动的顺序也不同,次数也不同。
 
另外 To :VVyang
<quito>算法倒是挺简单,不过不是最优算法,需要么?
简单把算法叙述一下:
总的来说就是把数字一个一个连到尾巴上。要连到尾巴上的数只要想办法放到中间位置即可。循环直至全部数连到尾巴上。</quito>
你的想法好象不对,中间的元素并不是能和8个方向的都连接,华容道好象只能和正方向的四个连接
 
To dfrandys:
中间的位置被某一元素占据,四周必留出一个空位,那么周围 8 个元素必定可以通过顺时针移动来空出要插入的位置。
 
后退
顶部