luishenriique

PAA - Order - Bubble & Merge

Jun 10th, 2014
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.46 KB | None | 0 0
  1. public class Order {
  2.  
  3.     public static void bubbleSort(char[] v, int tamanho){
  4.         for(int i = 0; i < tamanho; i++) {
  5.             boolean trocou = false;
  6.             for (int j = 0; j < (tamanho - i - 1); j++)
  7.                 if (v[j] > v[j + 1]) {
  8.                     trocou = true;
  9.                     v[j] += v[j + 1];
  10.                     v[j + 1] = (char)(v[j] - v[j + 1]);
  11.                     v[j] -= v[j + 1];
  12.                 }
  13.             if(!trocou) break;
  14.         }
  15.     }
  16.  
  17.     public static void mergeSort(char[] v, int start, int end) {
  18.         int mid = (start + end) / 2;
  19.         if (start < end) {
  20.             mergeSort(v, start, mid);
  21.             mergeSort(v, mid + 1, end);
  22.             merge(v, start, mid, end);
  23.         }
  24.     }
  25.     private static void merge(char[] v, int start, int mid, int end) {
  26.         char[] inputCopy = new char[v.length];
  27.         int firstArrStart = start, secondArrStart = mid + 1;
  28.         for (int i = start; i <= end; i++)
  29.             inputCopy[i] = v[i];
  30.         while (secondArrStart <= end && firstArrStart <= mid)
  31.             if (inputCopy[firstArrStart] >= inputCopy[secondArrStart])
  32.                 v[start++] = inputCopy[secondArrStart++];
  33.             else
  34.                 v[start++] = inputCopy[firstArrStart++];
  35.         while (firstArrStart <= mid)
  36.             v[start++] = inputCopy[firstArrStart++];
  37.         while (secondArrStart <= end)
  38.             v[start++] = inputCopy[secondArrStart++];
  39.     }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment