1. Chèn phần tử k vào mảng
2. Chèn phần tử k vào mảng sao cho mảng vẫn duy trì tính chất tăng dần
1.
public void chenmang() {
System.out.print("Nhập vị trí muốn chèn: ");
int p = sc.nextInt();
int[] b = {1, 3, 2, 4, 3};
ArrayList<Integer> arrayList1 = new ArrayList<>();
// Chèn các phần tử của mảng b vào arrayList1 trước vị trí p
for (int i = 0; i < p; i++) {
arrayList1.add(b[i]);
}
// Chèn các phần tử của mảng b vào arrayList1
for (int element : b) {
arrayList1.add(element);
}
// Chèn các phần tử còn lại của mảng b vào arrayList1 sau vị trí p
for (int i = p; i < b.length; i++) {
arrayList1.add(b[i]);
}
// In ra mảng sau khi chèn
System.out.println("Mảng sau khi chèn là:");
System.out.println(arrayList1);
}-Trong phương thức này, chúng ta chèn các phần tử của mảng mang vào arrayList1 trước vị trí p, sau đó chèn các phần tử của mảng b, và cuối cùng chèn các phần tử còn lại của mảng mang sau vị trí p. Cuối cùng, chúng ta in ra mảng sau khi chèn.
2.
import java.util.Arrays;
import java.util.Scanner;
public class InsertionInSortedArray {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Nhập số lượng phần tử của mảng
System.out.print("Nhập số lượng phần tử của mảng: ");
int n = scanner.nextInt();
int[] arr = new int[n];
// Nhập các phần tử của mảng
System.out.println("Nhập các phần tử của mảng:");
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
// Sắp xếp mảng theo thứ tự tăng dần
Arrays.sort(arr);
// Nhập phần tử k cần chèn
System.out.print("Nhập phần tử k cần chèn: ");
int k = scanner.nextInt();
// Tìm vị trí để chèn phần tử k vào sao cho mảng vẫn tăng dần
int insertIndex = 0;
for (int i = 0; i < n; i++) {
if (arr[i] < k) {
insertIndex++;
} else {
break;
}
}
// Tạo một mảng mới có kích thước lớn hơn để chứa phần tử k
int[] newArr = new int[n + 1];
// Chép các phần tử của mảng ban đầu vào mảng mới
for (int i = 0; i < insertIndex; i++) {
newArr[i] = arr[i];
}
// Chèn phần tử k vào vị trí thích hợp
newArr[insertIndex] = k;
// Chép các phần tử còn lại của mảng ban đầu vào mảng mới
for (int i = insertIndex + 1; i < n + 1; i++) {
newArr[i] = arr[i - 1];
}
// Hiển thị mảng sau khi chèn phần tử k
System.out.println("Mảng sau khi chèn phần tử k:");
for (int i = 0; i < n + 1; i++) {
System.out.print(newArr[i] + " ");
}
scanner.close();
}
}

Không có nhận xét nào:
Đăng nhận xét