Sorting 对实数使用基数排序

Sorting 对实数使用基数排序,sorting,Sorting,考虑到我有一个数字列表,对于每个数字n,我知道n是由一些恒定的位数表示的 即使我的数字是实数,但不一定是整数,我也可以使用基数排序吗?您只需将浮点数右侧的所有数字乘以-1即可遍历到负数,而且,您转换的每个数字都将保留对实数值的引用,否则,您需要将更改的数字转换回原始值。如果再次进行转换,最后一个操作可能会花费O(wn),或者如果保留引用,则只需花费O(n),如果W被视为常数,则无所谓。然后,使用基数排序,而不考虑浮点。 效率:O(wn)wheras w是数字的常数,n是提供的数字量。 基数排序具

考虑到我有一个数字列表,对于每个数字n,我知道n是由一些恒定的位数表示的


即使我的数字是实数,但不一定是整数,我也可以使用基数排序吗?

您只需将浮点数右侧的所有数字乘以-1即可遍历到负数,而且,您转换的每个数字都将保留对实数值的引用,否则,您需要将更改的数字转换回原始值。如果再次进行转换,最后一个操作可能会花费O(wn),或者如果保留引用,则只需花费O(n),如果W被视为常数,则无所谓。然后,使用基数排序,而不考虑浮点。 效率:O(wn)wheras w是数字的常数,n是提供的数字量。 基数排序具有相同的效率。
总效率:O(n)

您只需将浮点右侧的所有数字乘以-1即可遍历到负数,而且,您转换的每个数字都将保留对实数值的引用,否则您需要将更改后的数字转换回原始值。如果再次进行转换,最后一个操作可能会花费O(wn),或者如果保留引用,则只需花费O(n),如果W被视为常数,则无所谓。然后,使用基数排序,而不考虑浮点。 效率:O(wn)wheras w是数字的常数,n是提供的数字量。 基数排序具有相同的效率。
总效率:O(n)

假设采用IEEE格式并忽略诸如NAN之类的问题,然后将浮点转换为整数或双精度转换为long-long以进行排序,并在最重要的“数字”上切换符号位。这是假设传统计数/基数排序首先执行最低有效“位数”。8位的“数字”大小是常见的


您还可以在排序前后切换整个数组上的符号位,这与Ori Rafeal提出的乘-1的建议相同。

假设采用IEEE格式并忽略NAN等问题,然后将浮点数强制转换为整数或双精度到long以进行排序,并在最重要的“数字”上切换符号位。这是假设传统计数/基数排序首先执行最低有效“位数”。8位的“数字”大小是常见的

您还可以在排序前后切换整个数组上的符号位,这与Ori Rafeal提出的乘-1的建议相同