Vanya_Shestakov

Untitled

Nov 4th, 2021 (edited)
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.87 KB | None | 0 0
  1. def main(args: Array[String]) = {
  2.  
  3. val a = 0
  4. val b = 3
  5. if(a > b) {
  6. println("a > b")
  7. } else if(a < b) {
  8. println("a < b")
  9. } else {
  10. println("a = b")
  11. }
  12.  
  13. var counter: Int = 1
  14.  
  15. counter = 1
  16.  
  17. while(counter <= 5 ) {
  18. println(counter)
  19. counter += 1;
  20. }
  21.  
  22. for(i <- 0 to 5) {
  23. println(counter)
  24. }
  25.  
  26. val array1 = Array(3, 6, 1, 5, 2, 0, 8)
  27. bubbleSort1(array1)
  28.  
  29. val array2 = Array(4, 6, 22, 56, 11, 55, 223, 1, 7, 33, 9, 10, 67, 88, 2, 5, 6, 9, 213, 6, 3)
  30. bubbleSort2(array2)
  31.  
  32. val array3 = Array(4, 6, 11, 55, 223, 1, 7, 33, 9, 10, 67, 88, 2, 5, 6, 9, 213, 6, 3)
  33. bubbleSort(array3)
  34.  
  35. val array5 = Array(4, 6, 22, 56, 11, 55, 223, 1, 7, 6, 3, 0, 1, 2, 3)
  36. recursiveInsertionSort(array5)
  37.  
  38. val array6 = Array(4, 6, 22, 56, 55, 223, 43, 23, 1, 7, 6, 3)
  39. selectionSort(array6)
  40.  
  41. val array7 = Array(4, 6, 22, 56, 11, 3)
  42. insertionSort(array7)
  43.  
  44. val array8 = Array(56, 11, 55, 223, 1, 7, 6, 3)
  45. mergeSort(array8)
  46.  
  47.  
  48.  
  49. val x: Int = Random.nextInt(11)
  50.  
  51. x match {
  52. case 0 =>
  53. "zero"
  54. case 1 =>
  55. "one"
  56. case 2 =>
  57. "two"
  58. case 3 =>
  59. "three"
  60. }
  61.  
  62. }
  63.  
  64. def bubbleSort(numbers: Array[Int]) = {
  65. for(k <- 1 until numbers.length; j <- 0 until numbers.length - 1) {
  66. if (numbers(j) > numbers(j + 1)) {
  67. val x = numbers(j)
  68. numbers(j) = numbers(j + 1)
  69. numbers(j + 1) = x
  70. }
  71. }
  72. }
  73.  
  74. def bubbleSort2(numbers: Array[Int]) = {
  75. for(k <- 1 until numbers.length; j <- 0 until numbers.length - 1 if numbers(j) > numbers(j+1)) {
  76. (numbers(j), numbers(j + 1)) match {
  77. case (x, y) =>
  78. numbers(j) = y
  79. numbers(j + 1) = x
  80. }
  81. }
  82. }
  83.  
  84. def bubbleSort3(numbers: Array[Int]) = {
  85. for(k <- 1 until numbers.length; j <- 0 until numbers.length - k
  86. if(numbers(j) > numbers(j + 1)) {
  87. val x = numbers(j)
  88. numbers(j) = numbers(j + 1)
  89. numbers(j + 1) = x
  90. }
  91. }
  92.  
  93. def fibonacci(userInput: Int) = {
  94. var temp1, temp2 = 1;
  95. var result = 0;
  96. for (i <- 3 to userInput) {
  97. result = temp1 + temp2;
  98. temp1 = temp2;
  99. temp2 = result;
  100. i + userInput;
  101. }
  102. println("Nth no. of " + userInput + " using 'FOR' loop is : " + result);
  103. }
  104.  
  105. def recursiveInsertionSort(array: List[Int]): List[Int] = {
  106.  
  107. def insertion(x: List[Int]): List[Int] = {
  108. x match {
  109. case List() => List()
  110. case x :: xs => ins(x, insertion(xs))
  111. }
  112. }
  113.  
  114. def ins(x: Int, xs: List[Int]): List[Int] = {
  115. xs match {
  116. case List() => List(x)
  117. case x2 :: xs2 => if(x <= x2) x :: xs else x2 :: ins(x, xs2)
  118. }
  119. }
  120.  
  121. insertion(array)
  122. }
  123.  
  124. def selectionSort(array: Array[Int]): Array[Int] = {
  125.  
  126. for(i <- 0 to array.length - 1) {
  127. var min: Int = i
  128. var minVal = array(i)
  129.  
  130. for(j <- i + 1 to array.length - 1) {
  131. if(array(j) < minVal) {
  132. min = j
  133. minVal = array(j)
  134. }
  135. }
  136. val temp: Int = array(i)
  137. array(i) = array(min)
  138. array(min) = temp
  139. }
  140. array
  141. }
  142.  
  143. def insertionSort(array: Array[Int]): Array[Int] = {
  144. for(i <- 0 to array.length - 1) {
  145. val temp: Int = array(i)
  146. var j = i - 1
  147. while(j >= 0 && temp < array(j)) {
  148. array(j + 1) = array(j)
  149. j -= 1
  150. }
  151. array(j + 1) = temp
  152. }
  153. array
  154. }
  155.  
  156. def mergeSort(array: Array[Int]): Array[Int] = {
  157.  
  158. def sort(array: Array[Int]): Array[Int] = {
  159. MS(array, 0, array.length - 1)
  160. }
  161.  
  162. def MS(array: Array[Int], low: Int, high: Int): Array[Int] = {
  163. if(low < high) {
  164. val mid = (low + high) / 2
  165. MS(array, low, mid)
  166. MS(array, mid + 1, high)
  167. merge(array, low, mid, high)
  168. } else {
  169. array
  170. }
  171. }
  172.  
  173. def merge(array: Array[Int], low: Int, mid: Int, high: Int): Array[Int] = {
  174.  
  175. val left = array.slice(low, mid + 1)
  176. val right = array.slice(mid + 1, high + 1)
  177.  
  178. var i = 0
  179. var j = 0
  180. var k = low
  181. while(k < high + 1) {
  182. if(i > left.length - 1) {
  183. array(k) = right(j)
  184. j = j + 1
  185. } else if(j > right.length - 1) {
  186. array(k) = left(i)
  187. i = i + 1
  188. } else if(left(i) <= right(j)) {
  189. array(k) = left(i)
  190. i = i + 1
  191. } else {
  192. array(k) = right(j)
  193. j = j + 1
  194. }
  195. k = k + 1
  196. }
  197. array
  198. }
  199. sort(array)
  200. }
  201.  
Advertisement
Add Comment
Please, Sign In to add comment