def recursive_insert(arr)
return arr if arr.size<=1
recursive_insert(arr[0,arr.size-1])
i=arr.size-1
while arr[i-1]>arr[i] and i>0
arr[i],arr[i-1] = arr[i-1],arr[i]
i-=1
end
arr
end
arr=[5,4,3,2,6,1]
x=recursive_insert(arr)
puts x.inspect
これは機能しません。私は、Rubyが参照機構によるパスを持っていると考えています。私のarr
変数が各再帰呼び出しごとに更新されるのを防ぎます。再帰的な挿入並べ替えを作成するにはどうすればよいですか?
どうすれば解決できますか?私は非常に多くの困難をRubyで再帰関数を書いている。
Rubyはないポインタ、参照によって従ってないパスを持っていません。配列ソートアルゴリズムはすでに実装されています。これを使用することができます。ソートアルゴリズムを実装しようとしているのであれば、C/C++でそれをしないといけません。 –
@KassymDorsel確かに、PythonやRubyのようなスクリプト言語は、より高いレベルのデータ構造とアルゴリズムを実装するのには適していますが、低レベルのものは実装しない方が良いと思います。私は詳細な実装のためにCを使用することを好みます。私はちょうどカップルのデータ構造と問題を解決することで、ルビーの理解をテストしたいと思っています。お返事ありがとう – zsljulius