以下の問題をやれるところまでやったのですが、あとどう書き加えれば完成するのか息詰まってしまい、困っています。javascriptが分かる方、助けてください。
問題
与えられた配列 a の中の i 番目に大きな要素を取り出すために以下のようなアルゴリズムを考える.このアルゴリズムを実現せよ.この関数をkadai(a, i)とせよ.keyはaを用いて適当に設定せよ.
function kadai(a, i){
if (a.length <= 1) return a[0]
else {
あるkeyを設定して,
a の要素を> key と<= key の部分に分離する.
それぞれをa1, a2 とおく.
if (a1.length < i) return kadai(a2, i - a1.length)
else return kadai(a1, i)
}
}
[codeJScript]
function kadai(a, i)
{
if (a.length <= 1) return a[0]
else
{
var key = Math.floor(Math.random() * a.length)
var a1 = []
var a2 = []
if (a1.length < i) return kadai(a2, i - a1.length)
else return kadai(a1, i)
}
}
var a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
puts(a)
puts(kadai(a, 2))
[/code]
ちなみに、完成すると以下のような出力になるみたいです。
[出力]
1,2,3,4,5,6,7,8,9
3