繁体   English   中英

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

[英]What type of Sorting algorithm is this?

如果是冒泡排序又是什么这个

您看到Swap()的位置了吗?

这是一个选择排序

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

在这两种情况下,在i循环的末尾, arr[i]都将在i+1..SIZE范围内包含a中的最小元素。

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

这是一种选择排序(正如Maciej Hehl所说的那样),但是效果很差。 您交换方式很多次。 效果是您交换了最少的巫婆,但在交换的途中,交换的数目小于您要查看的数目。 那是没有必要的。

也许我缺少一些细微的东西,但是第一个链接(lorenzod8n.wordpress.com)显示了气泡排序; 第二个(cprogramminglanguage.net)选择排序。 甚至在文本中也是如此。

编辑:我错过/忘记了一些细微的东西:气泡排序交换相邻的条目; 第一个链接中的算法没有。 因此,它不是冒泡排序,尽管它确实有冒泡排序的过度交换行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM