Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2012
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 2.35 KB | None | 0 0
  1. public class Sorter2
  2. {
  3.     public static void toString(int [] list)
  4.     {
  5.         for(int i = 0; i < list.length; i++)
  6.         {
  7.             System.out.print(list[i]);
  8.             if(!(i + 1 == list.length))
  9.             {
  10.                 System.out.print(",");
  11.             }
  12.         }
  13.        
  14.         System.out.println("");
  15.     }
  16.    
  17.     public static void toString(int list[], int from, int to)
  18.     {
  19.         for(int i = from; i <= to; i++)
  20.         {
  21.             System.out.print(list[i]);
  22.             if(i + 1 <= to)
  23.             {
  24.                 System.out.print(",");
  25.             }
  26.         }
  27.        
  28.         System.out.println("");
  29.     }
  30.    
  31.     public static boolean isInOrder(int [] toCheck)
  32.     {
  33.         for(int i = 1; i < toCheck.length; i++)
  34.         {
  35.             if(toCheck[i] < toCheck[i - 1])
  36.             {
  37.                 return false;
  38.             }
  39.         }
  40.        
  41.         return true;
  42.     }
  43.    
  44.     public static int [] populate(int numOfItems)
  45.     {
  46.         int [] toReturn = new int[numOfItems];
  47.        
  48.         for(int i = 0; i < toReturn.length; i++)
  49.         {
  50.             toReturn[i] = (int) (Math.random() * 100 + 1);
  51.         }
  52.        
  53.         return toReturn;
  54.     }
  55.  
  56.     public static void sortSegments(int [] list ,int segment_one_begin, int midpoint, int segment_two_end)
  57.     {
  58.         int [] temp = new int[segment_two_end - segment_one_begin + 1];
  59.        
  60.         int counter_one = segment_one_begin;
  61.         int counter_two = midpoint + 1;
  62.        
  63.         int i = 0;
  64.        
  65.         while(counter_one <= midpoint && counter_two <= segment_two_end)
  66.         {
  67.             if(list[counter_one] <= list[counter_two])
  68.             {
  69.                 temp[i++] = list[counter_one++];
  70.             }
  71.             else
  72.             {
  73.                 temp[i++] = list[counter_two++];
  74.             }
  75.         }
  76.        
  77.         while(counter_one <= midpoint)
  78.         {
  79.             temp[i++] = list[counter_one++];
  80.         }
  81.  
  82.         while(counter_two <= segment_two_end)
  83.         {
  84.             temp[i++] = list[counter_two++];
  85.         }
  86.        
  87.         for(int l = 0; l < temp.length; l++)
  88.         {
  89.             list[segment_one_begin + l] = temp[l];
  90.         }
  91.        
  92.         toString(list, segment_one_begin, segment_two_end);
  93.     }
  94.    
  95.     public static void mergeSort(int [] list, int segment_begining, int segment_end)
  96.     {
  97.         if(segment_begining < segment_end)
  98.         {
  99.             int midpoint = (segment_end + segment_begining) / 2;
  100.             mergeSort(list, segment_begining, midpoint);
  101.             mergeSort(list, midpoint + 1, segment_end);
  102.             sortSegments(list, segment_begining, midpoint, segment_end);
  103.         }
  104.  
  105.     }
  106.     public static void mergeSort(int [] list)
  107.     {
  108.         mergeSort(list, 0, list.length - 1);
  109.     }
  110.    
  111.     public static void main(String [] args)
  112.     {
  113.         int [] nums = populate(20);
  114.         mergeSort(nums);
  115.         toString(nums);
  116.         System.out.println(isInOrder(nums));
  117.        
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement