Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.74 KB | None | 0 0
  1. package com.example.project01;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.view.*;
  7. import android.widget.TextView;
  8.  
  9. public class Result extends Activity {
  10. private int arr[] = null;
  11. private TextView result;
  12.  
  13. private static int counter = 1;
  14. private static String output = "";
  15.  
  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. requestWindowFeature(Window.FEATURE_LEFT_ICON);
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.result_screen);
  21.  
  22. int viewID = (Integer) getIntent().getExtras().get("viewID");
  23. TextView tv4 = (TextView) findViewById(R.id.TextView4);
  24.  
  25. result = (TextView) findViewById(R.id.result);
  26. Bundle rebundle = new Bundle();
  27. rebundle = this.getIntent().getExtras();
  28. arr = rebundle.getIntArray("value");
  29.  
  30. output = "";
  31. counter = 1;
  32.  
  33. if (viewID == R.id.Button_MergeSort) {
  34. tv4.setText("Merge Sort in action");
  35. result.setText(mergeSort(arr, 0, arr.length - 1));
  36. } else if (viewID == R.id.Button_HeapSort) {
  37. tv4.setText("Heap Sort in action");
  38. result.setText(heapSort(arr));
  39. } else if (viewID == R.id.Button_QuickSort) {
  40. tv4.setText("Quick Sort in action");
  41. result.setText(quickSort(arr, 0, arr.length - 1));
  42. } else {
  43. tv4.setText("Selection Sort in action");
  44. result.setText(selectionSort(arr));
  45. }
  46. }
  47.  
  48. public void merge(int[] arr, int low, int mid, int high) {
  49. int h = low, i = low, j = mid + 1, k;
  50. int[] temp = new int[arr.length];
  51. while ((h <= mid) && (j <= high)) {
  52. if (arr[h] <= arr[j]) {
  53. temp[i] = arr[h];
  54. h++;
  55. } else {
  56. temp[i] = arr[j];
  57. j++;
  58. }
  59. i++;
  60. }
  61. if (h > mid)
  62. for (k = j; k <= high; k++) {
  63. temp[i] = arr[k];
  64. i++;
  65. }
  66. else
  67. for (k = h; k <= mid; k++) {
  68. temp[i] = arr[k];
  69. i++;
  70. }
  71. for (k = low; k <= high; k++)
  72. arr[k] = temp[k];
  73. }
  74.  
  75. public String mergeSort(int[] arr, int low, int high) {
  76. if (low < high) {
  77. int mid = (low + high) / 2;
  78. mergeSort(arr, low, mid);
  79. mergeSort(arr, mid + 1, high);
  80. output += "Merge " + counter + ": \n";
  81. output += printArray(arr) + ",";
  82. counter++;
  83. merge(arr, low, mid, high);
  84. output += printArray(arr) + "\n";
  85. }
  86.  
  87. return output + "\nSorted array \n" + printArray(arr);
  88. }
  89.  
  90. public void sift(int[] arr, int L, int R) {
  91. output += printArray(arr) + ",";
  92. int temp = arr[L];
  93. int j = L;
  94. int k = L * 2 + 1;
  95. while (k <= R) {
  96. if (k < R && arr[k + 1] > arr[k])
  97. k++;
  98. if (temp < arr[k]) {
  99. arr[j] = arr[k];
  100. j = k;
  101. k = k * 2 + 1;
  102. } else
  103. break;
  104. }
  105. arr[j] = temp;
  106. output += printArray(arr) + " sift " + arr[j] + "," + arr[L] + "\n";
  107. }
  108.  
  109. public String heapSort(int[] arr) {
  110. int i;
  111. int lastIndex = arr.length - 1;
  112. int temp;
  113.  
  114. output += "Step 1: Build initial heap \n";
  115. for (i = lastIndex / 2; i >= 0; i--) {
  116. sift(arr, i, lastIndex);
  117. }
  118.  
  119. output += "\nStep 2: Start sorting \n";
  120.  
  121. for (i = lastIndex; i > 0; i--) {
  122. output += printArray(arr) + ",";
  123. temp = arr[0];
  124. arr[0] = arr[i];
  125. arr[i] = temp;
  126. output += printArray(arr) + " swap " + arr[0] + "," + arr[i] + "\n";
  127.  
  128. sift(arr, 0, i - 1);
  129. }
  130.  
  131. return output + "\nSorted array \n" + printArray(arr);
  132.  
  133. }
  134.  
  135. public int partition(int arr[], int left, int right) {
  136. output += "Step " + counter + ": \n";
  137. counter++;
  138. int i = left, j = right;
  139. int tmp;
  140. int pivot = arr[(left + right) / 2];
  141.  
  142. while (i <= j) {
  143. while (arr[i] < pivot)
  144. i++;
  145. while (arr[j] > pivot)
  146. j--;
  147. if (i <= j) {
  148. output += printArray(arr) + ",";
  149. tmp = arr[i];
  150. arr[i] = arr[j];
  151. arr[j] = tmp;
  152. output += printArray(arr) + " swap " + arr[i] + "," + arr[j] + "\n";
  153. i++;
  154. j--;
  155. }
  156. }
  157. return i;
  158. }
  159.  
  160. public String quickSort(int arr[], int left, int right) {
  161. int index = partition(arr, left, right);
  162. if (left < index - 1) {
  163. quickSort(arr, left, index - 1);
  164. }
  165. if (index < right) {
  166. quickSort(arr, index, right);
  167. }
  168.  
  169. return output + "\nSorted array \n" + printArray(arr);
  170. }
  171.  
  172. public String selectionSort(int[] arr) {
  173. int size = arr.length;
  174. int i, j, minindex, temp;
  175. for (i = 0; i < size - 1; i++) {
  176. output = output + "Step " + i + ": \n";
  177. output = output + printArray(arr) + ", ";
  178. minindex = i;
  179.  
  180. for (j = i + 1; j < size; j++) {
  181. if (arr[j] < arr[minindex])
  182. minindex = j;
  183. }
  184.  
  185. temp = arr[i];
  186. arr[i] = arr[minindex];
  187. arr[minindex] = temp;
  188.  
  189. output = output + printArray(arr) + " swap " + arr[i] + "," + arr[minindex] + "\n";
  190. }
  191.  
  192. return output + "\nSorted array \n" + printArray(arr);
  193. }
  194.  
  195. public String bubbleSort(int[] arr) {
  196. String temp = "";
  197. boolean swapped = true;
  198. int j = 0;
  199. int index = 0;
  200. int tmp;
  201. while (swapped) {
  202.  
  203. temp = temp + "Step " + index + ":" + "\n";
  204.  
  205. swapped = false;
  206. j++;
  207.  
  208. for (int i = 0; i < arr.length - j; i++) {
  209. if (arr[i] > arr[i + 1]) {
  210. temp = temp + printArray(arr) + ", ";
  211. tmp = arr[i];
  212. arr[i] = arr[i + 1];
  213. arr[i + 1] = tmp;
  214. swapped = true;
  215. temp = temp + printArray(arr) + " swap " + arr[i] + "," + arr[i + 1];
  216. temp = temp + "\n";
  217. }
  218.  
  219. }
  220. index++;
  221.  
  222. }
  223. String tr = "Step" + index;
  224. String[] str = temp.split(tr);
  225.  
  226. return str[0] + printArray(arr);
  227. }
  228.  
  229. public boolean checkOk(int[] arra) {
  230. for (int i = 0; i < arra.length; i++)
  231. if (arra[i] > arra[i + 1])
  232. return false;
  233.  
  234. return true;
  235. }
  236.  
  237. public String printArray(int[] arr) {
  238.  
  239. String tmp = "(";
  240. for (int i = 0; i < arr.length; i++) {
  241. tmp = tmp + " " + arr[i];
  242. }
  243. return tmp + ")";
  244. }
  245.  
  246. public void btReset(View view) {
  247. Intent intent = new Intent(this, Choice.class);
  248. startActivity(intent);
  249. }
  250.  
  251. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement