这是什么类型的排序算法?

时间:2010-10-04 19:42:21

标签: c algorithm sorting

如果this是冒泡排序,那么this是什么?

你看到Swap()的位置吗?

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

第一个列表确实是选择排序。它实质上与您提供的链接上的算法相同。但是,不是找到具有最小值的元素,而是在arr[i]循环之后将其与j交换一次,而是第一个代码立即将arr[i]与它遇到的任何值进行交换,这个值更小。

在这两种情况下,i循环结束时,arr[i]将包含i+1..SIZE范围内的最小元素。

这两种算法之间存在两个差异:您在此处显示的代码每次迭代执行多次交换,并且它会对尚未排序的数据进行混洗(这不是很重要,因为它们最终会被排序)。所以,基本上它的效率低于你链接的代码。

答案 2 :(得分:2)

这是一种选择排序(正如Maciej Hehl所说),但非常无效。你多次交换方式。效果是你交换女巫的最小值,但在相互交换的方式上,小于你正在看的数字。这是不必要的。

答案 3 :(得分:0)

也许我错过了一些微妙的东西,但第一个链接(lorenzod8n.wordpress.com)显示了一个冒泡排序;第二个(cprogramminglanguage.net)一个选择排序。它甚至在文中都这么说。

编辑:我错过了/忘记了一些微妙的事情:冒泡排序交换相邻的条目;第一个链接中的算法没有。因此,它不是冒泡排序,虽然它确实具有冒泡排序的过度交换行为。

相关问题