社区
C++ 语言
帖子详情
二维坐标数组的排序 帮忙!
ylongwu
2010-07-05 12:09:44
如图,将图中的所有点归入各行各列。
图中的点为一个个的坐标(x,y),共有10*9个坐标点,现在需要将他们排序分配到一个10*9的数组中,
请问有没有一个算法能保证100%的分配正确?
我试过用不断地循环 x排序 再y排序,最终没能得到正确的结果。
...全文
446
16
打赏
收藏
二维坐标数组的排序 帮忙!
如图,将图中的所有点归入各行各列。 图中的点为一个个的坐标(x,y),共有10*9个坐标点,现在需要将他们排序分配到一个10*9的数组中, 请问有没有一个算法能保证100%的分配正确? 我试过用不断地循环 x排序 再y排序,最终没能得到正确的结果。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
azure110
2010-07-06
打赏
举报
回复
你可以左右两个值减去中间一个值得到绝对值小的为一组;然后再排序打印;
依次推下去
ylongwu
2010-07-05
打赏
举报
回复
图中的点明显是一个10*9的二维数组,
原则就是将这90个点分配到10*9的数组中,比如这些点应该放在最后一列(原图中靠右的点):
ylongwu
2010-07-05
打赏
举报
回复
[Quote=引用 2 楼 stephen_yin 的回复:]
点既然能画出来,那坐标必然是有的,就存到二维数组中,中间会有什么问题啊!
[/Quote]
问题就在如何存放到10*9的二维数组中,排序容易混乱,比如第二列的点可能被放到第一列去了
Dstnoe
2010-07-05
打赏
举报
回复
楼主能说一下 排序的原则吗?
屎带芬
2010-07-05
打赏
举报
回复
点既然能画出来,那坐标必然是有的,就存到二维数组中,中间会有什么问题啊!
屎带芬
2010-07-05
打赏
举报
回复
这个,难点在什么地方?没看出来啊……
赵文波
2010-07-05
打赏
举报
回复
难啊= = 等高手来回答吧
cphj
2010-07-05
打赏
举报
回复
你这个是模式识别的问题,根本不是“排序”问题
ylongwu
2010-07-05
打赏
举报
回复
非常感谢楼上的,终于有人看明白我的问题了!!!
点的排列是很变态的,有一定的弯曲,从第一张图上也能看出。
比如:倒数第二列的点的x值可能比最后一列的x值还小
看图:
赵文波
2010-07-05
打赏
举报
回复
首先,你可以找到所有的点的坐标。而且不是已经给出了每个点的坐标了吗。
然后开始排序
首先,找出X值最小的9个点。因为是9列。这9个点按Y值排序由大到小排序,从大到小,分别是[0,0] [1,0] [2,0],[3,0];
这样就找出了第一列。
然后在剩余的点里,继续如此找。
我觉得这是最简单的方法。只要点的排列不是太变态,就可以搞的定
ylongwu
2010-07-05
打赏
举报
回复
这是原始数据,是一个一维数组,大小为90,每个元素是一个坐标。
ylongwu
2010-07-05
打赏
举报
回复
[Quote=引用 8 楼 flymood 的回复:]
你画的时候总有规律吧。在画的过程中向二维数组填数。能画出这种形状,说明一维数组已经按一定的规律排好序了。如果直接给90个数,这90个数是无序的,你也画不出来上面的图形啊。而且将90个无序的数填到2维数组,还这是不好办啊。
[/Quote]
一维数组完全是乱的,数组的每个元素就是一个坐标(x,y),将90个坐标依次取出,并在每个坐标处用不同颜色标出来,就形成了第一幅图。
ylongwu
2010-07-05
打赏
举报
回复
[Quote=引用 7 楼 visualeleven 的回复:]
你排序的规则是什么?
[/Quote]
规则只能这么说:第一幅图中的点明显是一个10*9的矩阵,但是这只是看出来的,现在想要用算法将他们真实的保存到10*9的矩阵中。
如果规则能完全写出来 那算法也就出来了吧?所以这个规则应该算是没找到 只是能看出来这90个点可以形成一个10*9的矩阵 现在的问题就是如何用算法将他们分成10*9的矩阵
flymood
2010-07-05
打赏
举报
回复
你画的时候总有规律吧。在画的过程中向二维数组填数。能画出这种形状,说明一维数组已经按一定的规律排好序了。如果直接给90个数,这90个数是无序的,你也画不出来上面的图形啊。而且将90个无序的数填到2维数组,还这是不好办啊。
Eleven
2010-07-05
打赏
举报
回复
你排序的规则是什么?
ylongwu
2010-07-05
打赏
举报
回复
原始数据是一个长度为90的一维坐标数组,
我将90个坐标用不同颜色描绘在上图中,
这样可以看出这90个坐标是按10*9的矩阵排列的
现在想用一个算法将90个坐标保存在10*9的数组中
二维
动态
数组
排序
.cpp
二维
的动态
数组
可横纵随意开辟空间,并可实现
排序
算法。
java学习之实现
二维
数组
排序
如题: java不像c语言,没有指针,所以没办法通过指针取值进行
排序
。那么java的
二维
数组
是怎么
排序
的呢? 解决方法如下: 方法一: 思路:新建一个一维
数组
将
二维
数组
的数据按行存入,然后对一维
数组
排序
,最后将排过序的一维
数组
按序存入
二维
数组
实现原理为一维
数组
排序
,此处不做展示 方法二: 思路:(我使用的是选择
排序
,每次循环确定一个位置,下次循环就少循环一个数) 先获取
二维
数组
的元素个数,若
二维
数组
不为正则
数组
,可通过遍历获得元素个数。 以元素个数作为总循环次数作为...
学习-Java
数组
之
二维
字符
数组
之按字母序
排序
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,对给定
二维
字符
数组
排序
(把所有元素按照字母降序
排序
),并输出
排序
后的结果,输出
二维
数组
时注意
数组
中的每行数字之间用空格分开,每行中最后一个数字后面也要有一个空格。
二维
字符
数组
的创建、初始化以及元素的引用与
二维
数值
数组
是一样的,唯一的区别在于,
二维
字符
数组
存储的是字符。他们的区别体现在创建
数组
的时候。平台将运行你编写的程序代码,若你的运行结果与预期输出一致,则通关。本关任务:对给定
二维
字符
数组
排序
,并输出
排序
后的结果。
C语言
二维
数组
中存放
二维
坐标
按纵
坐标
大小
排序
问题描述:一个足够大的
二维
数组
a[ ][2]中,存放了n对
坐标
,例如第一个
坐标
是(5,6),那么a[0][0]=5,a[0][1]=6,依此类推,将存放的这些
坐标
对,按照纵
坐标
从小到大的顺序进行排列。 输入: (1,25) (20,36) (4,18) (23,15) (22,5) 输出: (22,5) (23,15) (4,18) (1,25) (20,36) 代码如下...
java中的
排序
与
二维
数组
假定第一个元素最小,然后与后面的元素依此比较,如果后面的元素的值比第一个元素还小,那么让他们的值进行交换,经过一轮比较之后第一个元素的值是最小的,然后从第二个开始比较第二个后面的那些元素。
二维
数组
中,行是固定的,但是列可以不规则;不规则列相对用得特别少,因为赋值和取值较麻烦,可读性也会更差。概述:一维
数组
的一维
数组
,也就是可以看成一维
数组
的元素又是一维
数组
。
二维
数组
的定义,可以看成是行长度和列长度的空间定义。其余元素为它上一个元素加它上一个元素左侧元素的和。第一列为1 每一行的最后一个元素为1。
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章