Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm “的排序算法”;弱序;?_Algorithm_Performance_Sorting_Quadratic - Fatal编程技术网

Algorithm “的排序算法”;弱序;?

Algorithm “的排序算法”;弱序;?,algorithm,performance,sorting,quadratic,Algorithm,Performance,Sorting,Quadratic,向量中有无序元素。没有及物性;如果元素A>B和B>C,则A>C不需要为真 我需要对它们进行排序,使一个元素大于它的下一个元素 例如,如果我们有三个元素A、B和C,并且: A<B, A>C B<C, B>A C<A, C>B AC 文学士 CB 向量是,我们需要将其排序为 我用冒泡排序和其他需要O(n2)时间的经典排序算法进行了排序,但看起来效率不高 有没有更有效的算法 谢谢。你正在寻找的被称为。你正在寻找的被称为。将你的数据视为一个图形,其中数组的元素a,

向量中有无序元素。没有及物性;如果元素A>B和B>C,则A>C不需要为真

我需要对它们进行排序,使一个元素大于它的下一个元素

例如,如果我们有三个元素A、B和C,并且:

A<B, A>C
B<C, B>A
C<A, C>B
AC
文学士
CB
向量是
,我们需要将其排序为

我用冒泡排序和其他需要O(n2)时间的经典排序算法进行了排序,但看起来效率不高

有没有更有效的算法


谢谢。

你正在寻找的被称为。

你正在寻找的被称为。

将你的数据视为一个图形,其中数组的元素
a
B
C
是顶点,两个顶点之间的(定向)边
x
y
是比较
x

在问题的图形视图中,对元素进行排序的要求是,使每个相邻对
x
y
满足
x>y
,这与查找通过顶点的哈密顿路径相同


您的
关系没有明显的限制(例如,它不是可传递的,并且可以包含循环),因此您得到的图形是任意图形。剩下的问题是在任意图中找到哈密顿路径,这是一个NP完全问题。这意味着你不会找到一个简单有效的解决方案。

将你的数据视为一个图形,其中数组的元素
a
B
C
是顶点,两个顶点之间的(定向)边
x
y
是比较
x>y

在问题的图形视图中,对元素进行排序的要求是,使每个相邻对
x
y
满足
x>y
,这与查找通过顶点的哈密顿路径相同


您的
关系没有明显的限制(例如,它不是可传递的,并且可以包含循环),因此您得到的图形是任意图形。剩下的问题是在任意图中找到哈密顿路径,这是一个NP完全问题。这意味着您无法找到简单、高效的解决方案。

我最终使用了快速排序。我选择一个轴元素,并对元素进行排序,这样我就有了两部分:小于轴的元素和大于轴的元素。对于这两部分,将再次递归执行快速排序。这样,我的平均复杂度为O(nlogn)


谢谢你的评论

我最终使用了快速排序。我选择一个轴元素,并对元素进行排序,这样我就有了两部分:小于轴的元素和大于轴的元素。对于这两部分,将再次递归执行快速排序。这样,我的平均复杂度为O(nlogn)


谢谢你的评论

你只能按照一个顺序排序,你描述的不是一个。是否可能是A>B,B>C,C>A(与更多元素类似)?在问题中,你声明你已经使用“气泡排序和其他经典排序算法”解决了这个问题但是这些算法在这里不起作用,因为
这是非传递排序。不应该被否决。这是一个合法的问题,我也有同样的问题。你只能按照一个顺序排序,你描述的不是一个。有没有可能A>B,B>C,C>A(与更多元素类似)?在这个问题中,你声明你已经用“气泡排序和其他经典排序算法”解决了这个问题但是这些算法在这里不起作用,因为
这是非传递排序。不应该被否决。这是一个合法的问题,我在这里的时候也有同样的问题;数字是节点,每个>都是有向边。因此,在上面的示例中,我们有
A
B
C
节点和
A->B
B->C
边。我注意到,在给出的示例中,有一个循环是什么示例?我的答案中没有例子。问题中的例子是;数字是节点,每个>都是有向边。因此,在上面的示例中,我们有
A
B
C
节点和
A->B
B->C
边。我注意到,在给出的示例中,有一个循环是什么示例?我的答案中没有例子。问题中的例子。