Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2015
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.21 KB | None | 0 0
  1.  
  2. import java.util.Scanner;
  3.  
  4.  
  5. public class obj {
  6.     public static Scanner sc = new Scanner(System.in);
  7.     public static void main(String[] args) {
  8.         System.out.println("Введите кол-во элементов:");
  9.         int n = sc.nextInt();
  10.         int[] arr = new int[n];
  11.         for (int i = 0; i < arr.length; i++) {
  12.             arr[i] = (int) (Math.random() * 10);
  13.         }
  14.         System.out.println("Элементи массива:");
  15.         for (int i = 0; i < arr.length; i++) {
  16.             System.out.print(arr[i] + " ");
  17.         }
  18.         System.out.println("\n1. Метод простого обмена.\n2. Метод Шелла.");
  19.         int x = sc.nextInt();
  20.         switch (x){
  21.             case 1: bubbleSort(arr);break;
  22.             case 2: sortShell(arr,n);break;
  23.         }
  24.  
  25.     }
  26.     private static void bubbleSort(int[] arr) {
  27.         for (int i = arr.length - 1; i > 0; i--) {
  28.             for (int j = 0; j < i; j++) {
  29.                 if (arr[j] > arr[j + 1]) {
  30.                     int tmp = arr[j];
  31.                     arr[j] = arr[j + 1];
  32.                     arr[j + 1] = tmp;
  33.                 }
  34.             }
  35.         }
  36.         System.out.println("Введите число B:");
  37.         int B = sc.nextInt();
  38.         int qty = 0; //количество элементов, больших, чем B
  39.         for (int i:arr) {
  40.             if(i>B){
  41.                 qty++;
  42.             }
  43.         }
  44.         System.out.println("Всего элементов - " + arr.length);
  45.         System.out.println("Элементов, больших чем b - " + qty);
  46.  
  47.     }
  48.     private static void sortShell(int[] arr, int n) {
  49.         int step = n/2;
  50.         while (step>0)
  51.         {
  52.             for (int i = 0; i < (n - step); i++)
  53.             {
  54.                 int j = i;
  55.                 while (j >= 0 && arr[j] > arr[j + step])
  56.                 {
  57.                     int temp = arr[j];
  58.                     arr[j] = arr[j + step];
  59.                     arr[j + step] = temp;
  60.                     j--;
  61.                 }
  62.             }
  63.             step = step / 2;
  64.         }
  65.         for (int i = 0; i < n; i++) {
  66.             System.out.print(arr[i] + " ");
  67.         }
  68.  
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement