我有三个元素(一个数组,而不是一个数组 - 没关系)。我怎样才能尽可能快速和紧凑地对它们进行分类?
例如:
a = 7; b = 18; c = -3;
应该变成:
a = 18; b = 7; c = -3;
使用“繁重”的库排序(相同的 QuickSort)来处理这样一件小事似乎有些昂贵,而且手头并不总是有现成的实现(或者您不想将依赖项拉入程序中)。
请提供一个简单而紧凑的排序的伪代码。
我有三个元素(一个数组,而不是一个数组 - 没关系)。我怎样才能尽可能快速和紧凑地对它们进行分类?
例如:
a = 7; b = 18; c = -3;
应该变成:
a = 18; b = 7; c = -3;
使用“繁重”的库排序(相同的 QuickSort)来处理这样一件小事似乎有些昂贵,而且手头并不总是有现成的实现(或者您不想将依赖项拉入程序中)。
请提供一个简单而紧凑的排序的伪代码。
最简单和最紧凑的选项之一是通过扩展所有循环来应用冒泡排序:
除了@Kromster 的回答:
具有三个比较的解决方案是最佳的。对于较少的比较次数,不可能对数据进行排序。
确实,三个元素可以有3个!= 6 个排列选项,对于两次比较,我们只有 4 种可能的结果,因此,某些情况将以相同的方式处理。
(同一证明的另一个版本:比较前两个元素后,我们有第三个可能的三个位置,仅通过一次额外比较我们无法确定哪个是正确的。)
点击这里
执行代码
并根据您的健康状况进行分类:-)!
始终有效: