Advertisement
Shavit

P. 139 Ex. 12.25

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