Thursday, July 1, 2021

Tổng hơp những bài tập Array trong Java

Xin chào mừng bạn đến với blog thủ thuật lập trình java, hôm nay mình xin hướng dẫn cho các bạn những bài tập Array trong java cơ bản nhất, để nắm bắt được những kỹ thuật lập trình các bạn phải hiểu rõ về cơ bản lý thuyết cũng như kỹ thuật lập trình.

Tổng hơp những bài tập Array trong Java

Sau đây là tổng hợp bài tập array trong java.

Bài 1

Đề bài: Viết chương trình Java nhập một mảng số nguyên a0, a1, a2, …, an-1. Liệt kê các phần tử xuất hiện trong mảng đúng 1 lần.

Bài giải:

/**

 * Chương trình liệt kê số lần xuất hiện các phần tử trong một mảng

 * nhập từ bàn phím trong java.

 *

 * @author eLib.vn

 */

public class BaiTap19 {

  public static Scanner scanner = new Scanner(System. in );


  /**

     * main

     *

     * @param args

     */

  public static void main(String[] args) {

    System.out.print("Nhập số phần tử của mảng: ");

    int n = scanner.nextInt();

    // khởi tạo arr

    int[] arr = new int[n];

    System.out.println("Nhập các phần tử của mảng: ");

    for (int i = 0; i < n; i++) {

      System.out.printf("a[%d] = ", i);

      arr[i] = scanner.nextInt();

    }

    // tìm số lần xuất hiện của các phần tử

    Map < Integer,

    Integer > map = new TreeMap < Integer,

    Integer > ();

    for (int i = 0; i < n; i++) {

      addElement(map, arr[i]);

    }

    System.out.print("Các phần tử xuất hiện 1 lần: ");

    for (Integer key: map.keySet()) {

      if (map.get(key) == 1) {

        System.out.print(key + " ");

      }

    }

  }


  /**

     * Thêm từ vào map

     *

     * @param wordMap: map chứa các từ và số lần xuất hiện

     * @param sb: từ cần thêm vào wordMap

     */

  public static void addElement(Map < Integer, Integer > map, int element) {

    if (map.containsKey(element)) {

      int count = map.get(element) + 1;

      map.put(element, count);

    } else {

      map.put(element, 1);

    }

  }

}

Kết quả:

Nhập số phần tử của mảng: 6

Nhập các phần tử của mảng: 

a[0] = 1

a[1] = 2

a[2] = 3

a[3] = 1

a[4] = 2

a[5] = 5

Các phần tử xuất hiện 1 lần: 3 5 

Bài 2

Đề bài: Viết chương trình nhập một mảng số nguyên a0, a1, a2, …, an-1. Liệt kê số lần xuất hiện của các phần tử trong một mảng đã cho.

Lời giải:

/**

 * Chương trình liệt kê số lần xuất hiện các phần tử trong một mảng

 * nhập từ bàn phím trong java.

 *

 * @author viettuts.vn

 */

public class BaiTap21 {

  public static Scanner scanner = new Scanner(System. in );


  /**

     * main

     *

     * @param args

     */

  public static void main(String[] args) {

    System.out.print("Nhập số phần tử của mảng: ");

    int n = scanner.nextInt();

    // khởi tạo arr

    int[] arr = new int[n];

    System.out.print("Nhập các phần tử của mảng: n");

    for (int i = 0; i < n; i++) {

      System.out.printf("a[%d] = ", i);

      arr[i] = scanner.nextInt();

    }

    // tìm số lần xuất hiện của các phần tử

    Map < Integer,

    Integer > map = new TreeMap < Integer,

    Integer > ();

    for (int i = 0; i < n; i++) {

      addElement(map, arr[i]);

    }

    System.out.print("Các phần tử xuất hiện 2 lần: n");

    for (Integer key: map.keySet()) {

      System.out.printf("%d xuất hiện %d lần.n", key, map.get(key));

    }

  }


  /**

     * Thêm từ vào map

     *

     * @param wordMap: map chứa các từ và số lần xuất hiện

     * @param sb: từ cần thêm vào wordMap

     */

  public static void addElement(Map < Integer, Integer > map, int element) {

    if (map.containsKey(element)) {

      int count = map.get(element) + 1;

      map.put(element, count);

    } else {

      map.put(element, 1);

    }

  }

}

Kết quả:

Nhập số phần tử của mảng: 10

Nhập các phần tử của mảng: 

a[0] = 1

a[1] = 2

a[2] = 3

a[3] = 4

a[4] = 1

a[5] = 2

a[6] = 2

a[7] = 5

a[8] = 6

a[9] = 7

Các phần tử xuất hiện 2 lần: 

1 xuất hiện 2 lần.

2 xuất hiện 3 lần.

3 xuất hiện 1 lần.

4 xuất hiện 1 lần.

5 xuất hiện 1 lần.

6 xuất hiện 1 lần.

7 xuất hiện 1 lần.

Bài 3:

Đề bài: Viết chương trình Java nhập một mảng số nguyên a0, a1, a2, …, an-1. Hãy sắp xếp mảng theo thứ tự tăng dần.

Lời giải:

import java.util.Scanner;


/**

 * Chương trình sắp xếp mảng số nguyên theo thứ tự tăng dần.

 *

 * @author viettuts.vn

 */

public class BaiTap24 {

  public static Scanner scanner = new Scanner(System. in );


  /**

     * main

     *

     * @param args

     */

  public static void main(String[] args) {

    System.out.print("Nhập số phần tử của mảng: ");

    int n = scanner.nextInt();

    // khởi tạo arr

    int[] arr = new int[n];

    System.out.print("Nhập các phần tử của mảng: n");

    for (int i = 0; i < n; i++) {

      System.out.printf("a[%d] = ", i);

      arr[i] = scanner.nextInt();

    }

    // sắp xếp dãy số theo thứ tự tăng dần

    sortASC(arr);

    System.out.println("Dãy số được sắp xếp tăng dần: ");

    show(arr);

  }


  /**

     * sắp xếp mảng số nguyên theo thứ tự tăng dần

     *

     * @param arr: mảng các số nguyên

     * @param n: số phần tử của mảng

     */

  public static void sortASC(int[] arr) {

    int temp = arr[0];

    for (int i = 0; i < arr.length - 1; i++) {

      for (int j = i + 1; j < arr.length; j++) {

        if (arr[i] > arr[j]) {

          temp = arr[j];

          arr[j] = arr[i];

          arr[i] = temp;

        }

      }

    }

  }


  /**

     * in các phần tử của mảng ra màn hình

     *

     * @param arr: mảng các số nguyên

     * @param n: số phần tử của mảng

     */

  public static void show(int[] arr) {

    for (int i = 0; i < arr.length; i++) {

      System.out.print(arr[i] + " ");

    }

  }

}

Kết quả:

Nhập số phần tử của mảng: 7

Nhập các phần tử của mảng: 

a[0] = 1

a[1] = 2

a[2] = 5

a[3] = 6

a[4] = 3

a[5] = 1

a[6] = 9

Dãy số được sắp xếp tăng dần: 

1 1 2 3 5 6 9 

Bài 4

Đề bài: Viết chương trình Java nhập một mảng số nguyên a0, a1, a2, …, an-1. Hãy sắp xếp mảng theo thứ tự tăng dần, sau đó chèn phần tử k vào mà vẫn đảm bảo mảng là tăng dần

Lời giải:

/**

 * Chương trình sắp xếp mảng theo thứ tự tăng dần,

 * sau đó chèn phần tử k vào mà vẫn đảm bảo mảng là tăng dần.

 *

 * @author eLib.vn

 */

public class BaiTap24 {

  public static Scanner scanner = new Scanner(System. in );


  /**

     * main

     *

     * @param args

     */

  public static void main(String[] args) {

    System.out.print("Nhập số phần tử của mảng: ");

    int n = scanner.nextInt();

    // khởi tạo arr

    int[] arr = new int[n];

    System.out.print("Nhập các phần tử của mảng: n");

    for (int i = 0; i < n; i++) {

      System.out.printf("a[%d] = ", i);

      arr[i] = scanner.nextInt();

    }

    System.out.print("Nhập phần tử k = ");

    int k = scanner.nextInt();

    // sắp xếp dãy số theo thứ tự tăng dần

    sortASC(arr);

    System.out.print("Sắp xếp mảng tăng dần: ");

    show(arr);

    System.out.printf("nChèn phần tử %d vào mảng.", k);

    arr = insert(arr, k);

    System.out.print("nMảng sau khi chèn: ");

    show(arr);

  }


  /**

     * sắp xếp mảng số nguyên theo thứ tự tăng dần

     *

     * @param arr: mảng các số nguyên

     */

  public static void sortASC(int[] arr) {

    int temp = arr[0];

    for (int i = 0; i < arr.length - 1; i++) {

      for (int j = i + 1; j < arr.length; j++) {

        if (arr[i] > arr[j]) {

          temp = arr[j];

          arr[j] = arr[i];

          arr[i] = temp;

        }

      }

    }

  }


  /**

     * chèn phần tử vào mảng số nguyên tăng dần

     * sau khi chèn mảng vẫn duy trì thứ tự tăng dần

     *

     * @param arr: mảng số nguyên tăng dần

     * @param k: phần tử chèn vào mảng arr

     */

  public static int[] insert(int[] arr, int k) {

    int arrIndex = arr.length - 1;

    int tempIndex = arr.length;

    int[] tempArr = new int[tempIndex + 1];

    boolean inserted = false;


    for (int i = tempIndex; i >= 0; i--) {

      if (arrIndex > -1 && arr[arrIndex] > k) {

        tempArr[i] = arr[arrIndex--];

      } else {

        if (!inserted) {

          tempArr[i] = k;

          inserted = true;

        } else {

          tempArr[i] = arr[arrIndex--];

        }

      }

    }

    return tempArr;

  }


  /**

     * in các phần tử của mảng ra màn hình

     *

     * @param arr: mảng các số nguyên

     */

  public static void show(int[] arr) {

    for (int i = 0; i < arr.length; i++) {

      System.out.print(arr[i] + " ");

    }

  }

}

Kết quả:

Nhập số phần tử của mảng: 5

Nhập các phần tử của mảng: 

a[0] = 2

a[1] = 3

a[2] = 4

a[3] = 5

a[4] = 6

Nhập phần tử k = 1

Sắp xếp mảng tăng dần: 2 3 4 5 6 

Chèn phần tử 1 vào mảng.

Mảng sau khi chèn: 1 2 3 4 5 6 

No comments:

Post a Comment