私はこのソートアルゴリズムをJavaで開発していました。具体的には、このアルゴリズムは非常に大きな数の範囲で非常に大きなリストをソートするためのものです。あなたがそれを見たか、またはアルゴリズムを強化するための示唆があれば、それについて以下に何か言いたいことがありますか?私は間違っていない場合、それはあなたの標準問題バブルソートで、減算でソートする
public static int[] sort(int[] nums)
{
int lowest = Integer.MAX_VALUE;
for (int n : nums)
{
if (n < lowest)
lowest = n;
}
int index = 0;
int down = 0;
while (index < nums.length)
{
for (int i = index; i < nums.length; i++)
{
if (nums[i] == lowest)
{
int temp = nums[i] + down;
nums[i] = nums[index];
nums[index] = temp;
index++;
}
else
nums[i]--;
}
down++;
}
return nums;
}
私はそれが行くと思ったのは、n^2時間ではなく、範囲*長さの時間(それが通過する時間は、長さだけに依存しない)で実行されるということであり、あなたが小さな範囲で長いリストをソートしている場合は効率的です。これらの条件で自分で実行すると、違いがあるかどうかを教えてください(私は、以前のコメントの回答で以前に使用した条件がいくつかあります)。 –
それはどのように動作するのか説明のビット。私は2つのネストされたループを持っていますが、while(index