Advertisement
Shavit

P. 145 Ex. 12.33

Mar 23rd, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.20 KB | None | 0 0
  1. // Shavit Borisov
  2. // CW
  3.  
  4. import java.util.Scanner;
  5.  
  6. public class SameValues {
  7.  
  8.     public static void main(String[] args)
  9.     {
  10.         Scanner in = new Scanner(System.in);
  11.        
  12.         final int SIZE = 5;
  13.         int[] arr = new int[SIZE];
  14.        
  15.         System.out.printf("Enter values for your unsorted array:\n");
  16.        
  17.         for(int i = 0; i < arr.length; i++)
  18.         {
  19.             System.out.printf("arr[%d] = ", i);
  20.             arr[i] = in.nextInt();
  21.         }
  22.        
  23.         Sorting obj = new Sorting(arr);
  24.         System.out.printf("Your array has %d unique values", obj.sort());
  25.        
  26.         in.close();
  27.     }
  28. }
  29.  
  30. // Next class
  31.  
  32. public class Sorting
  33. {
  34.     int[] arr;
  35.    
  36.     public Sorting(int[] arr)
  37.     {
  38.         this.arr = arr.clone();
  39.     }
  40.    
  41.     public int sort()
  42.     {
  43.         int counter = 1;
  44.         int min;
  45.         for(int i = 0; i < arr.length; i++)
  46.         {
  47.             min = searchMin(arr, i);
  48.             if(min != i)
  49.                 swap(arr, i, min);
  50.             if(i != 0 && arr[i] != arr[i - 1])
  51.                 counter++;
  52.         }
  53.         return counter;
  54.     }
  55.    
  56.     private int searchMin(int[] arr, int i)
  57.     {
  58.         int min = i;
  59.         for(int j = i + 1; j < arr.length; j++)
  60.             if(arr[j] < arr[min])
  61.                 min = j;
  62.         return min;
  63.     }
  64.    
  65.     private void swap(int[] arr, int index, int min)
  66.     {
  67.         int temp = arr[min];
  68.         arr[min] = arr[index];
  69.         arr[index] = temp;
  70.     }  
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement