Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. package nstu.labs
  2.  
  3. /**
  4. * Created by Александр on 29.04.2017.
  5. */
  6. class SortList[A] {
  7.  
  8. var is_int = 0;
  9.  
  10. def handle(a: Any): Unit = a match {
  11. case vs: Array[String] => println("strings: "); is_int = 0;
  12. case vs: Array[Int] => println("ints: "); is_int = 1;
  13. case _ =>
  14. }
  15.  
  16. def mergeList(left: List[A], right: List[A]): List[A] =
  17. {
  18. (left, right) match {
  19. case(left, Nil) => left
  20. case(Nil, right) => right
  21. case(leftHead :: leftTail, rightHead :: rightTail) =>
  22. if (leftHead.toString.toInt < rightHead.toString.toInt) leftHead::mergeList(leftTail, right)
  23. else rightHead :: mergeList(left, rightTail)
  24. }
  25. }
  26.  
  27. def process_sort(list: List[A]): List[A] = {
  28. val middle = list.length /2
  29. if (middle == 0) return list
  30.  
  31. var (left, right) = list.splitAt(middle)
  32. println(list)
  33.  
  34. println(f"left $left right $right")
  35.  
  36. if(is_int == 1)
  37. return mergeList(process_sort(left), process_sort(right))
  38. else
  39. return list
  40. }
  41.  
  42.  
  43. def printList(args: List[_]): Unit = {
  44. args.foreach(println)
  45. }
  46.  
  47. def pre_process_sort(array: Array[A], left_num : Int, right_num: Int): Array[A] = {
  48. if (left_num >= right_num)
  49. {
  50. println("Left must be less then right!")
  51. return array
  52. }
  53. else if(left_num < 0 || right_num < 0 || right_num > array.length - 1)
  54. {
  55. println("Some stupied numbers!")
  56. return array
  57. }
  58.  
  59. handle(array)
  60.  
  61. var buffered_array = array.slice(left_num, right_num)
  62. var list = buffered_array.toList
  63. var new_list = process_sort(list)
  64.  
  65. printList(new_list)
  66.  
  67. return array
  68. }
  69. }
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. package nstu.labs
  77.  
  78.  
  79.  
  80. object HelloWorld {
  81. def main(args:Array[String]) = {
  82.  
  83. val ints = new SortList[Int]()
  84. var array = Array(1, 6, 4, 7, 8, 9, 10, 25 ,1 ,2, 3)
  85.  
  86. // val ints = new SortList[Int]()
  87. // var array = Array("1", "6", "4", "7", "8", "9", "10", "25" ,"1" ,"2", "3")
  88.  
  89. val sorted = ints.pre_process_sort(array, 1, 4)
  90.  
  91. println("Hello, world!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
  92. //sorted.foreach((i: Int) => println(i))
  93. }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement