Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.project01;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.*;
- import android.widget.TextView;
- public class Result extends Activity {
- private int arr[] = null;
- private TextView result;
- private static int counter = 1;
- private static String output = "";
- @Override
- public void onCreate(Bundle savedInstanceState) {
- requestWindowFeature(Window.FEATURE_LEFT_ICON);
- super.onCreate(savedInstanceState);
- setContentView(R.layout.result_screen);
- int viewID = (Integer) getIntent().getExtras().get("viewID");
- TextView tv4 = (TextView) findViewById(R.id.TextView4);
- result = (TextView) findViewById(R.id.result);
- Bundle rebundle = new Bundle();
- rebundle = this.getIntent().getExtras();
- arr = rebundle.getIntArray("value");
- output = "";
- counter = 1;
- if (viewID == R.id.Button_MergeSort) {
- tv4.setText("Merge Sort in action");
- result.setText(mergeSort(arr, 0, arr.length - 1));
- } else if (viewID == R.id.Button_HeapSort) {
- tv4.setText("Heap Sort in action");
- result.setText(heapSort(arr));
- } else if (viewID == R.id.Button_QuickSort) {
- tv4.setText("Quick Sort in action");
- result.setText(quickSort(arr, 0, arr.length - 1));
- } else {
- tv4.setText("Selection Sort in action");
- result.setText(selectionSort(arr));
- }
- }
- public void merge(int[] arr, int low, int mid, int high) {
- int h = low, i = low, j = mid + 1, k;
- int[] temp = new int[arr.length];
- while ((h <= mid) && (j <= high)) {
- if (arr[h] <= arr[j]) {
- temp[i] = arr[h];
- h++;
- } else {
- temp[i] = arr[j];
- j++;
- }
- i++;
- }
- if (h > mid)
- for (k = j; k <= high; k++) {
- temp[i] = arr[k];
- i++;
- }
- else
- for (k = h; k <= mid; k++) {
- temp[i] = arr[k];
- i++;
- }
- for (k = low; k <= high; k++)
- arr[k] = temp[k];
- }
- public String mergeSort(int[] arr, int low, int high) {
- if (low < high) {
- int mid = (low + high) / 2;
- mergeSort(arr, low, mid);
- mergeSort(arr, mid + 1, high);
- output += "Merge " + counter + ": \n";
- output += printArray(arr) + ",";
- counter++;
- merge(arr, low, mid, high);
- output += printArray(arr) + "\n";
- }
- return output + "\nSorted array \n" + printArray(arr);
- }
- public void sift(int[] arr, int L, int R) {
- output += printArray(arr) + ",";
- int temp = arr[L];
- int j = L;
- int k = L * 2 + 1;
- while (k <= R) {
- if (k < R && arr[k + 1] > arr[k])
- k++;
- if (temp < arr[k]) {
- arr[j] = arr[k];
- j = k;
- k = k * 2 + 1;
- } else
- break;
- }
- arr[j] = temp;
- output += printArray(arr) + " sift " + arr[j] + "," + arr[L] + "\n";
- }
- public String heapSort(int[] arr) {
- int i;
- int lastIndex = arr.length - 1;
- int temp;
- output += "Step 1: Build initial heap \n";
- for (i = lastIndex / 2; i >= 0; i--) {
- sift(arr, i, lastIndex);
- }
- output += "\nStep 2: Start sorting \n";
- for (i = lastIndex; i > 0; i--) {
- output += printArray(arr) + ",";
- temp = arr[0];
- arr[0] = arr[i];
- arr[i] = temp;
- output += printArray(arr) + " swap " + arr[0] + "," + arr[i] + "\n";
- sift(arr, 0, i - 1);
- }
- return output + "\nSorted array \n" + printArray(arr);
- }
- public int partition(int arr[], int left, int right) {
- output += "Step " + counter + ": \n";
- counter++;
- int i = left, j = right;
- int tmp;
- int pivot = arr[(left + right) / 2];
- while (i <= j) {
- while (arr[i] < pivot)
- i++;
- while (arr[j] > pivot)
- j--;
- if (i <= j) {
- output += printArray(arr) + ",";
- tmp = arr[i];
- arr[i] = arr[j];
- arr[j] = tmp;
- output += printArray(arr) + " swap " + arr[i] + "," + arr[j] + "\n";
- i++;
- j--;
- }
- }
- return i;
- }
- public String quickSort(int arr[], int left, int right) {
- int index = partition(arr, left, right);
- if (left < index - 1) {
- quickSort(arr, left, index - 1);
- }
- if (index < right) {
- quickSort(arr, index, right);
- }
- return output + "\nSorted array \n" + printArray(arr);
- }
- public String selectionSort(int[] arr) {
- int size = arr.length;
- int i, j, minindex, temp;
- for (i = 0; i < size - 1; i++) {
- output = output + "Step " + i + ": \n";
- output = output + printArray(arr) + ", ";
- minindex = i;
- for (j = i + 1; j < size; j++) {
- if (arr[j] < arr[minindex])
- minindex = j;
- }
- temp = arr[i];
- arr[i] = arr[minindex];
- arr[minindex] = temp;
- output = output + printArray(arr) + " swap " + arr[i] + "," + arr[minindex] + "\n";
- }
- return output + "\nSorted array \n" + printArray(arr);
- }
- public String bubbleSort(int[] arr) {
- String temp = "";
- boolean swapped = true;
- int j = 0;
- int index = 0;
- int tmp;
- while (swapped) {
- temp = temp + "Step " + index + ":" + "\n";
- swapped = false;
- j++;
- for (int i = 0; i < arr.length - j; i++) {
- if (arr[i] > arr[i + 1]) {
- temp = temp + printArray(arr) + ", ";
- tmp = arr[i];
- arr[i] = arr[i + 1];
- arr[i + 1] = tmp;
- swapped = true;
- temp = temp + printArray(arr) + " swap " + arr[i] + "," + arr[i + 1];
- temp = temp + "\n";
- }
- }
- index++;
- }
- String tr = "Step" + index;
- String[] str = temp.split(tr);
- return str[0] + printArray(arr);
- }
- public boolean checkOk(int[] arra) {
- for (int i = 0; i < arra.length; i++)
- if (arra[i] > arra[i + 1])
- return false;
- return true;
- }
- public String printArray(int[] arr) {
- String tmp = "(";
- for (int i = 0; i < arr.length; i++) {
- tmp = tmp + " " + arr[i];
- }
- return tmp + ")";
- }
- public void btReset(View view) {
- Intent intent = new Intent(this, Choice.class);
- startActivity(intent);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement