Questions tagged «sorting»

排序是将一些订单应用于项目集合的过程。

3
使用Underscore sortBy进行对象排序的数组
我有这个数组。如何使用下划线'_.sortBy'根据开始日期对其进行排序? [ { id: 'oljw832021kjnb389xzll323jk', start: { dateTime: '2013-09-26T13:30:00-07:00' }, end: { dateTime: '2013-09-26T14:30:00-07:00' }, }, { id: 'ed7l5tmckdp0lm90nvr4is3d4c', start: { dateTime: '2013-09-26T15:30:00-07:00' }, end: { dateTime: '2013-09-26T16:30:00-07:00' }, }, { id: 'etmasdsackdp0kjl0nvrkopioqw', start: { dateTime: '2013-09-26T18:00:00-07:00' }, end: { dateTime: '2013-09-26T19:00:00-07:00' }, } ]

26
GridView排序:SortDirection始终升序
我有一个gridview,当用户单击标题时,需要对其元素进行排序。 它的数据源是一个List对象。 aspx是这样定义的: <asp:GridView ID="grdHeader" AllowSorting="true" AllowPaging="false" AutoGenerateColumns="false" Width="780" runat="server" OnSorting="grdHeader_OnSorting" EnableViewState="true"> <Columns> <asp:BoundField DataField="Entitycode" HeaderText="Entity" SortExpression="Entitycode" /> <asp:BoundField DataField="Statusname" HeaderText="Status" SortExpression="Statusname" /> <asp:BoundField DataField="Username" HeaderText="User" SortExpression="Username" /> </Columns> </asp:GridView> 后面的代码是这样定义的: 第一次加载: protected void btnSearch_Click(object sender, EventArgs e) { List<V_ReportPeriodStatusEntity> items = GetPeriodStatusesForScreenSelection(); this.grdHeader.DataSource = items; this.grdHeader.DataBind(); } 当用户点击标题时: protected …

8
按降序对数字进行排序,但开头应为0
我在JavaScript中遇到了一个挑战,已经尝试了一段时间。 考虑以下数组: let arr = [0, 1, 0, 2, 0, 3, 0, 4, 0, 5]; 我必须输出以下结果: arr = [0, 0, 0, 0, 0, 5, 4, 3, 2, 1] 我遵循以下逻辑行将零放置在前面,从而调整索引值: arr.sort((x, y) => { if (x !== 0) { return 1; } if (x === 0) { return -1; } return …

3
在两个范围内以降序对向量排序
假设我有一个整数向量: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); 然后我按降序对其进行排序: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); 这将产生以下结果: 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 现在,我想将数字3、4、5和6移到末尾,并保持它们的降序(最好不必sort第二次使用)。即,这就是我想要的: 14 13 12 11 10 …

3
如何找到将物品移到堆栈中某个位置的最小移动次数?
给定一组NXP堆栈,其中N为堆栈数,P为堆栈容量,我如何计算从位置A的某个节点移动到任意位置B所需的最小交换数?我正在设计一个游戏,最终目标是对所有堆栈进行排序,以使它们都具有相同的颜色。 # Let "-" represent blank spaces, and assume the stacks are stacks = [ ['R', 'R', 'R', 'R'], ['Y', 'Y', 'Y', 'Y'], ['G', 'G', 'G', 'G'], ['-', '-', '-', 'B'], ['-', 'B', 'B', 'B'] ] 如果我想在插入一个“B” stacks[1][1]这样stacks[1] = ["-", "B", "Y", "Y"]。如何确定所需的最小移动次数? 我一直在研究多种方法,尝试过遗传算法,可以从状态生成所有可能的移动,对它们进行评分,然后继续沿最佳得分路径前进,我还尝试运行Djikstra的算法来对问题进行寻路。看起来很简单,但是我无法找到一种方法来让它在指数时间以外的任何时间运行。我是否缺少适用于此的算法? 编辑 我已经编写了此函数来计算所需的最小移动量:堆栈:表示堆栈中棋子的字符列表,堆栈[0] [0]是堆栈[0]的顶部stack_ind:将要添加到堆栈中的片断的堆栈stacks.exe def calculate_min_moves(stacks, stack_ind, …

3
自定义排序方式是A排在a之前,B排在b之前
我有一个这样的颜色列表: 粉色,蓝色,红色,蓝色,灰色,绿色,紫色,黑色...等 List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black"); 有一些中间操作,例如过滤一些水果色,现在剩下过滤结果要按顺序排序了: 蓝色,黑色,蓝色,灰色,绿色,粉红色,紫色,红色 我努力了 : List<String> collect = listOfColors.stream().sorted(String::compareToIgnoreCase) .collect(Collectors.toList()); 它不能按预期方式工作。 输出如下: 黑色,蓝色,蓝色,绿色,灰色,粉红色,紫色,红色 我想要以下内容: 蓝色,黑色,蓝色,灰色,绿色,粉红色,紫色,红色

2
Excel / SharedStrings的排序算法
在Excel中,它们将字符串“压缩”为数字映射(尽管我不确定在这种情况下compress这个词是否正确)。这是下面显示的示例: 虽然这有助于减少总体文件大小和内存占用量,但是Excel如何对字符串字段进行排序?是否每个字符串都需要进行查找映射:如果是这样,这不会大大增加/减慢对字符串字段进行排序的成本(如果有1M的值,则不会进行1M的键查找)不重要的)。关于此的两个问题: 是在Excel应用程序本身中使用共享字符串,还是仅在保存数据时使用共享字符串? 那么在现场排序的示例算法是什么?任何语言都可以(C,C#,C ++,Python)。

3
如何有效地排序R中字符串中的字符?
如何有效地对向量中每个字符串的字符进行排序?例如,给定一个字符串向量: set.seed(1) strings <- c(do.call(paste0, replicate(4, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(3, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(2, sample(LETTERS, 10000, TRUE), FALSE))) 我编写了一个函数,该函数将每个字符串拆分为一个向量,对向量进行排序,然后折叠输出: sort_cat <- function(strings){ tmp <- strsplit(strings, split="") tmp <- lapply(tmp, sort) tmp <- lapply(tmp, paste0, collapse = "") tmp <- unlist(tmp) return(tmp) } sorted_strings <- sort_cat(strings) 但是,我需要将其应用到的字符串向量很长,并且此功能太慢。有没有人对如何提高性能有任何建议?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.