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
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