stable_sort与sort有什么区别?

学术版

因为他是归并排序复杂度是稳定的,并且可以保证原数据的相对位置不被改变。
by hly1204 @ 2019-12-13 23:47:09


说的有点不严谨但是可以理解吧。。
by hly1204 @ 2019-12-13 23:47:58


@[hly1204](/user/242973) 然而快排加一堆奇奇怪怪的优化
by 樱初音斗橡皮 @ 2019-12-13 23:48:01


`stable_sort`是归并排序 需要额外空间吧 其实你用`sort`就行了 这是个很复杂的排序过程优化了很多 不要担心什么复杂度问题 `STL::sort`设计的很好的绝对不会挂 @[WithForce](/user/35204)
by installb @ 2019-12-13 23:52:38


至于这个效率就是玄学罢了。。
by installb @ 2019-12-13 23:53:01


@[installb](/user/31440) `stable_sort` 确实在数组元素动的不多的时候比 `sort` 快
by hellomath @ 2019-12-14 00:01:00


@[WithForce](/user/35204) @[hly1204](/user/242973) 正解 ~~其实我就是举个例子QWQ~~ ``` 给你一组数 数 : 1 2 2 4 3 5 标号 : 1 2 3 4 5 6 sort: 第一种可能: 排序 : 1 2 2 3 4 5 序号 : 1 2 3 5 4 6 第二种可能 : 排序 : 1 2 2 3 4 5 序号 : 1 3 2 5 4 6 对于 stable_sort 只有一种可能 排序 : 1 2 2 3 4 5 序号 : 1 2 3 5 4 6 ``` 总结一下 sort 在处理多个相同数是编号也会进行再排序 而 stable_sort 对于相同来说只有一次的排序 所以有时候确实省时间qwq
by S1gMa @ 2019-12-14 00:31:00


|