答案 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)一个选择排序。它甚至在文中都这么说。
编辑:我错过了/忘记了一些微妙的事情:冒泡排序交换相邻的条目;第一个链接中的算法没有。因此,它不是冒泡排序,虽然它确实具有冒泡排序的过度交换行为。