Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting 关于示例中选择排序的稳定性,这是否正确?_Sorting - Fatal编程技术网

Sorting 关于示例中选择排序的稳定性,这是否正确?

Sorting 关于示例中选择排序的稳定性,这是否正确?,sorting,Sorting,我看到了一个关于选择和插入排序稳定性的示例,该示例应用于一组internet事务: 我做了一次尝试,使用选择排序,使用位置标准对其进行排序: 我的意思是,据我所知,选择排序选择无序部分(右部分)中元素的索引,并将其放在左部分的前面。在第一次传球中,芝加哥09:00:00处于正确的位置,没有其他芝加哥时间更短。然后我们转到Phoenix 09:00:03,所以我们在右边部分检查一个较小的元素(芝加哥09:00:59),因为这个元素较小,我们应该得到: Chicago 09:00:00 Chic

我看到了一个关于选择和插入排序稳定性的示例,该示例应用于一组internet事务:

我做了一次尝试,使用选择排序,使用位置标准对其进行排序:

我的意思是,据我所知,选择排序选择无序部分(右部分)中元素的索引,并将其放在左部分的前面。在第一次传球中,芝加哥09:00:00处于正确的位置,没有其他芝加哥时间更短。然后我们转到Phoenix 09:00:03,所以我们在右边部分检查一个较小的元素(芝加哥09:00:59),因为这个元素较小,我们应该得到:

Chicago 09:00:00
Chicago 09:00:59
(1,0)(4,1)(4,0)
(1,0)(4,0)(4,1)
(1,0)(4,1)(4,0)
但是在这个例子中说,因为我们使用的选择排序是不稳定的,而使用插入排序可以是稳定的

我在比较中做错了什么

我还看到了另一个例子:

Sort this elements
(4,0)(4,1)(1,0)
好的,如果我使用选择排序,我只检查每个元组的第一个元素,我将得到:

Chicago 09:00:00
Chicago 09:00:59
(1,0)(4,1)(4,0)
(1,0)(4,0)(4,1)
(1,0)(4,1)(4,0)
好的,它看起来不稳定,但它说如果我们使用插入排序,我们将得到:

Chicago 09:00:00
Chicago 09:00:59
(1,0)(4,1)(4,0)
(1,0)(4,0)(4,1)
(1,0)(4,1)(4,0)
但如果我对原始数组稍作修改,使其:

(4,1)(4,0)(1,0)
我们只比较第一个元素,插入排序也不稳定,因为我们最终会得到:

Chicago 09:00:00
Chicago 09:00:59
(1,0)(4,1)(4,0)
(1,0)(4,0)(4,1)
(1,0)(4,1)(4,0)
好的,如果我们对两个元素进行比较,那么选择排序也可以是稳定的
这些证明有什么问题?

在上一个示例中,插入排序是稳定的。排序算法的稳定性仅仅意味着具有相同键的项将保持它们相对彼此的相同顺序

因此,在上一个示例中,您有:

(4,1)(4,0)(1,0)
插入排序的结果是:

(1,0)(4,1)(4,0)
项目
(4,1)
(4,0)
彼此保持相同的顺序。也就是说,
(4,1)
在原始数组中位于
(4,0)
之前,在最终数组中位于该项之前。种类稳定

此外,使用选择排序对任何特定数组进行排序的结果可能表明选择排序是稳定的。也就是说,不能保证选择排序会改变相等项的相对顺序。例如,从以下内容开始:

(4,1)(1,0)(4,0)
选择排序将产生

(1,0)(4,1)(4,0)

在这种情况下,选择排序没有改变
(4,1)
(4,0)
的相对顺序。但这并不意味着选择排序是稳定的。毕竟,即使一个停止的时钟一天也会对两次。

这个问题更适合于