I’m trying out Scala and I want to see how one would implement insertion sort in scala with the following requirements:
- Nested for loops
- Array[Int] for input
- If possible a way to modify the contents of the function in a call by reference way otherwise return an Array[Int]
If this isn’t the Scala way of implementing insertion sort can you still provide code for the above and explain what is wrong with the approach.
edit:
This is an attempt using a while loop (doest work) and no it isn’t a homework question, why the hostility?
def insert_sort(a:Array[Int]):Array[Int]={
for(i <- 0 until a.length)
{
var j=i+1
while(j>1&&a(j)<a(j-1)&&j<a.length)
{
var c=a(j)
a(j)=a(j-1)
a(j-1)=c
j-=1
}
}
return a
}
The implementation given in the wikipedia article fits your bill. Here it is, copied, pasted, and converted to Scala syntax: