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