Advertisement
Help Keep Boards Alive. Support us by going ad free today. See here: https://subscriptions.boards.ie/.
If we do not hit our goal we will be forced to close the site.

Current status: https://keepboardsalive.com/

Annual subs are best for most impact. If you are still undecided on going Ad Free - you can also donate using the Paypal Donate option. All contribution helps. Thank you.
https://www.boards.ie/group/1878-subscribers-forum

Private Group for paid up members of Boards.ie. Join the club.

Scala: Recursive selection sort problem..[code]

  • 06-08-2011 01:08PM
    #1
    Registered Users, Registered Users 2 Posts: 2,238 ✭✭✭


    Hi Guys,

    I'm doing some revision for an upcoming repeat :( and i've run into a problem with the following recursive implementation of Selection Sort in Scala.

    For the most card this works but it doesn't seem to be swapping the first two values when they should be swapped. I'm sure it's pretty basic but my problem solving cap is a little rusty at this stage :mad:

    Any ideas greatly appreciated:
    object question3 {
      def main(args : Array[String]) : Unit =
      {
    	  var arr = Array(8,9,8,5,2,4,1,6,3,7,5,-1,5,0,99)
    	  arr = sort(arr, 0, 0, 0)
    	  
    	  println("RESULT:")
    	  arr.foreach(str=>print(str+","))
      }
      def sort(arr : Array[Int], n : Int, min : Int, j : Int): Array[Int] =
      {
    	  if(n == arr.length)
    	  {
    	 	  return arr
    	  }
    	  else
    	  {
    		  var j = n+1
    		  var min = n
    		  
    		  if(j < arr.length)
    		  {
    			  if(arr(j) < arr(min))
    			  {
    			      min = j  
    			  }
    			  sort(arr, n+1, min, j+1)
    		  }
    		  if(min != n)
    		  {
    		 	var t = arr(n)
    		 	arr(n) = arr(min)
    		 	arr(min) = t
    		  }
    		  sort(arr, n+1, min, j)
    	  }
      }
    }
    
    


Advertisement