18/03/2021, 09:40
Bài tập Java - Chèn phần tử vào mảng trong java
Bài tập Java - Sắp xếp mảng theo thứ tự giảm dần Nội dung chính Bài tập Java - Chèn phần tử vào mảng trong Java Lời giải Bài tập Java - Chèn phần tử vào mảng trong Java Đề bài : Viết chương trình Java nhập một mảng số nguyên a0, a1, a2, …, an-1. ...
Bài tập Java - Sắp xếp mảng theo thứ tự giảm dần
Nội dung chính
- Bài tập Java - Chèn phần tử vào mảng trong Java
- Lời giải
Bài tập Java - Chèn phần tử vào mảng trong Java
Đề 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èn phần tử vào mảng trong java.

File: BaiTap24.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | package vn.viettuts.baitap.array; import java.util.Scanner; /** * 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 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: "); 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(" Chèn phần tử %d vào mảng.", k); arr = insert(arr, k); System.out.print(" Mả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
Bài tập Java - Sắp xếp mảng theo thứ tự giảm dần