Algorithm 如何按价格和速度对100张二维汽车图像的10 x 10网格进行排序?
下面是一个场景 我有一百件汽车用品。每辆车都有速度属性和价格属性。我想在网格中排列汽车的图像,以便最快和最昂贵的汽车位于右上角,最慢和最便宜的汽车位于左下角,所有其他汽车位于网格中的适当位置 我需要使用什么样的排序算法,你有什么建议吗Algorithm 如何按价格和速度对100张二维汽车图像的10 x 10网格进行排序?,algorithm,sorting,car-analogy,Algorithm,Sorting,Car Analogy,下面是一个场景 我有一百件汽车用品。每辆车都有速度属性和价格属性。我想在网格中排列汽车的图像,以便最快和最昂贵的汽车位于右上角,最慢和最便宜的汽车位于左下角,所有其他汽车位于网格中的适当位置 我需要使用什么样的排序算法,你有什么建议吗 编辑:结果不需要精确-事实上我正在处理一个更大的网格,因此,如果汽车大致集中在正确的位置就足够了。基本上,你必须以速度或价格中的一个作为主要参数,然后获得与此主要参数值相同的汽车,并按升序/降序对这些值进行排序,并且根据需要也按升序/降序对主要参数进行排序 例子:
编辑:结果不需要精确-事实上我正在处理一个更大的网格,因此,如果汽车大致集中在正确的位置就足够了。基本上,你必须以速度或价格中的一个作为主要参数,然后获得与此主要参数值相同的汽车,并按升序/降序对这些值进行排序,并且根据需要也按升序/降序对主要参数进行排序 例子: c1(201000)c2(305000)c3(20500)c4(103000)c5(351000) 让我们假设汽车(速度、价格)是上面列表中的度量,主要是速度 我以最低速度开车 2然后获得所有具有相同速度值的车辆 3按汽车价格的升序排列这些值 4获得具有下一个最小速度值的下一辆车,并重复上述过程 c4(103000)
c3(20500)
c1(20,1000)
c2(305000)
c5(351000) 如果您发布您正在使用的语言,这将对我们有所帮助,因为一些语言结构使其更易于实现。例如,在这种情况下,LINQ让你的生活变得非常轻松
cars.OrderBy(x => x.Speed).ThenBy(p => p.Price);
编辑:
现在你得到了列表,按照将这些汽车项目放入网格,除非你知道将有这么多的预定汽车具有这些值,否则你不能做任何事情,除非像现在这样使用一些固定的网格大小
一种选择是使用非均匀网格,如果您愿意,每行都有特定速度的车辆项目,但这仅适用于您知道将有相当数量的车辆具有相同的速度值的情况
因此,每一排都会有网格中显示的相同速度的汽车
谢谢基本上,您必须以速度或价格中的一个作为主要参数,然后获得与此主要参数值相同的车辆,并按升序/降序对这些值进行排序,并且根据需要也按升序/降序对主要参数进行排序 例子: c1(201000)c2(305000)c3(20500)c4(103000)c5(351000) 让我们假设汽车(速度、价格)是上面列表中的度量,主要是速度 我以最低速度开车 2然后获得所有具有相同速度值的车辆 3按汽车价格的升序排列这些值 4获得具有下一个最小速度值的下一辆车,并重复上述过程 c4(103000)
c3(20500)
c1(20,1000)
c2(305000)
c5(351000) 如果您发布您正在使用的语言,这将对我们有所帮助,因为一些语言结构使其更易于实现。例如,在这种情况下,LINQ让你的生活变得非常轻松
cars.OrderBy(x => x.Speed).ThenBy(p => p.Price);
编辑:
现在你得到了列表,按照将这些汽车项目放入网格,除非你知道将有这么多的预定汽车具有这些值,否则你不能做任何事情,除非像现在这样使用一些固定的网格大小
一种选择是使用非均匀网格,如果您愿意,每行都有特定速度的车辆项目,但这仅适用于您知道将有相当数量的车辆具有相同的速度值的情况
因此,每一排都会有网格中显示的相同速度的汽车
谢谢请将此视为两个问题: 1:生成已排序的列表 2:将已排序列表的成员放入网格中 排序只是一个更精确地定义规则的问题。“最快最贵的优先”不起作用。首先是我的10万英镑劳斯莱斯,最高时速120,还是我的加大马力的迷你车,价格5万英镑,最高时速180
拿到你的名单后,你将如何填写?第一个和最后一个很容易,但是第二个去哪里呢?沿着顶部还是底部?然后下一步,沿着行,沿着列,Z字形?你必须做出决定。之后,编码应该很容易。将其视为两个问题: 1:生成已排序的列表 2:将已排序列表的成员放入网格中 排序只是一个更精确地定义规则的问题。“最快最贵的优先”不起作用。首先是我的10万英镑劳斯莱斯,最高时速120,还是我的加大马力的迷你车,价格5万英镑,最高时速180
拿到你的名单后,你将如何填写?第一个和最后一个很容易,但是第二个去哪里呢?沿着顶部还是底部?然后下一步,沿着行,沿着列,Z字形?你必须做出决定。之后,编码应该很容易。是否需要10x10约束?如果是的话,你必须有十种速度和十种价格,否则图表就没有多大意义。例如,如果最快的车不是最贵的,会发生什么 我建议您将网格大小设置为
(number of distinct speeds) x (number of distinct prices),
那么这将是一个(相当)简单的按两个轴排序的情况。是否需要10x10约束?如果是的话,你必须有十种速度和十种价格,否则图表就没有多大意义。例如,如果最快的车不是最贵的,会发生什么 我建议您将网格大小设置为
(number of distinct speeds) x (number of distinct prices),
然后,这将是一个(相当)简单的按两个轴排序的情况。如果数据来源于数据库,那么您应该在从数据库获取数据时对它们进行排序。这应该只意味着在查询末尾附近,但在
限制
部分之前(其中“速度”和“价格”是
1 - 2 6 - 7
/ / /
3 5 8
| /
4