这个问题需要一些客户姓名,客户ID,最后到期的金额。 我有整个计划,但无法弄清楚最后一个需要做分类的原型。 我有一个名为Customers的结构,我也将提供int main()部分。 我只需要在SortData()的原型上开始GT的任何帮助。 struct Customers { string Name; string Id; float OrderAmount; float Tax; float AmountDue; }; const int MAX_CUSTOMERS = 1000; bool MoreCustomers(int); Customers GetCustomerData(); void OutputResults(Customers [], int); void SortData(const int, const int, Customers []); int main() { Customers c[MAX_CUSTOMERS]; int Count = 0; do { c[Count++] = GetCustomerData(); } while […]
我有一个元素列表,每个元素用一个types标识,我需要重新sorting列表,以最大化相同types的元素之间的最小距离 。 这个集合很小(10到30个),所以performance并不重要。 每种types的物品的数量或types的数量没有限制,数据可以被认为是随机的。 例如,如果我有一个列表: A的5项 B的3项 C项2项 D项2项 E的1项 F的1项 我想产生像这样的: A , B , C , A , D , F , B , A , E , C , A , D , B , A A之间至less有2个项目 B有至less4项之间的事件 C有6个项目发生之间 D有6个项目发生之间 有没有一个algorithm来实现这个? -Update- 在交换了一些意见之后,我提出了一个次要目标的定义: 主要目标 :最大化相同types元素之间的最小距离,只考虑距离较小的types。 次要目标 :最大化每种types的元素之间的最小距离。 IE:如果一个组合增加了某种types的最小距离而不减less其他的,那就select它。 更新2- 关于答案。 有很多有用的答案,虽然没有一个是解决这两个目标,特别是第二个是棘手的。 关于答案的一些想法: […]
什么是自然顺序的意思。 假设我有一个名字,年龄和joindate的Employee对象,按照自然顺序sorting?
我想根据特定的列来排列matrix。 有一个sort函数,但它独立地sort所有列。 例如,如果我的matrixdata是: 1 3 5 7 -1 4 然后所需的输出(按第一列sorting)将是: -1 4 1 3 5 7 但是sort(data)的输出是: -1 3 1 4 5 7 我怎样才能sorting这个matrix的第一列?
我有一个数组,包含几个数组,我想要sorting的数组中的某个string。 var myArray = [ [1, 'alfred', '…'], [23, 'berta', '…'], [2, 'zimmermann', '…'], [4, 'albert', '…'], ]; 我怎样才能按名字sorting呢,这样albert 先走了 , zimmermann走到最后了? 我知道如果我可以使用整数进行sorting,但是string让我无能为力,我该怎么做。 感谢您的帮助! 🙂
所以我今天遇到了一个有趣的问题。 我们有一个WCF Web服务返回一个IList。 没有什么大不了的,直到我想分类。 原来IList接口没有内置的sorting方法。 我结束了使用ArrayList.Adapter(list).Sort(new MyComparer())方法来解决这个问题,但它似乎有点“贫民窟”给我。 我玩弄了一个扩展方法,也从IListinheritance和实现我自己的Sort()方法以及铸造到一个列表,但没有一个看起来过于优雅。 所以我的问题是,有没有人有一个优雅的解决scheme来sortingIList
我有一个数组的数组: Array ( [0] => Array ( [id] = 7867867, [title] = 'Some Title'), [1] => Array ( [id] = 3452342, [title] = 'Some Title'), [2] => Array ( [id] = 1231233, [title] = 'Some Title'), [3] => Array ( [id] = 5867867, [title] = 'Some Title') ) 需要按照特定的顺序进行: 3452342 5867867 7867867 1231233 我将如何去做呢? 我之前已经对数组进行了sorting,并且阅读了大量关于它的其他文章,但它们总是基于比较(即valueA […]
我有一个“报告”对象的列表与三个字段(所有stringtypes) – ReportKey StudentNumber School 我有一个sorting代码像 – Collections.sort(reportList, new Comparator<Report>() { @Override public int compare(final Report record1, final Report record2) { return (record1.getReportKey() + record1.getStudentNumber() + record1.getSchool()) .compareTo(record2.getReportKey() + record2.getStudentNumber() + record2.getSchool()); } }); 出于某种原因,我没有sorting的顺序。 有人build议在田间放置空间,但为什么? 你看到代码有什么问题吗?
我很困惑,我找不到一个快速的答案。 我本质上是在Java中寻找一个实现了java.util.List接口的数据结构,但它按照sorting顺序存储它的成员。 我知道你可以使用一个正常的ArrayList并使用Collections.sort() ,但我有一个场景,我偶尔添加,并经常从列表中检索成员,我不想每次都sorting检索一个成员,以防一个新的被添加。 任何人都可以指向我在JDK甚至是第三方库中存在的东西吗? 编辑 :数据结构将需要保留重复。 答案的总结 :我发现这一切非常有趣,并且学到了很多东西。 Aioobe特别值得一提的是他在试图达到我上面的要求(主要是一个支持重复的sortingjava.util.List实现)的毅力。 我已经接受了他的答案,因为对于我所问的问题而言,他的答案是最准确的,而且即使我问的并不是我所需要的,我也多半想到了我所寻找的东西的含意。 我所要求的问题在于List接口本身以及接口中可选方法的概念。 引用javadoc: 这个接口的用户可以精确地控制每个元素插入到列表中的哪个位置。 插入到已sorting的列表中不能精确控制插入点。 然后,你必须考虑如何处理一些方法。 以add为例: public boolean add(Object o) Appends the specified element to the end of this list (optional operation). 你现在处于不舒服的情况1)打破合同,并实施加分的版本2)让add添加一个元素到列表的末尾,打破你的sorting顺序3)离开add (作为其可选的)通过抛出一个UnsupportedOperationException并实现另一种按sorting顺序添加项目的方法。 选项3可能是最好的,但我觉得它有一个不能使用的add方法和另一个不在接口中的sortedAdd方法。 其他相关解决scheme(无特定顺序): java.util.PriorityQueue这可能是最接近我所需要的,而不是我所要求的。 在我的情况下,队列不是对象集合的最精确的定义,但是在function上它完成了我所需要的一切。 net.sourceforge.nite.util.SortedList 。 然而,这个实现通过在add(Object obj)方法中实现sorting来破坏List接口的契约,而奇怪地, add(int index, Object obj)没有效果方法。 一般共识build议throw new UnsupportedOperationException()在这种情况下可能是一个更好的select。 番石榴的TreeMultiSet一个支持重复的集合实现 ca.odell.glazedlists.SortedList这个类在javadoc中有Warning: This class breaks […]
我有一个下面的课: [DataContract] public class Pair<TKey, TValue> : INotifyPropertyChanged, IDisposable { public Pair(TKey key, TValue value) { Key = key; Value = value; } #region Properties [DataMember] public TKey Key { get { return m_key; } set { m_key = value; OnPropertyChanged("Key"); } } [DataMember] public TValue Value { get { return m_value; } set { […]