bưu kiện
sáp nhập;
nhập khẩu
java.util.Mảng;
nhập khẩu
java.util.Random;
nhập khẩu
java.util.Scanner;
công cộng
lớp học
Sắp xếp hợp nhất{
công cộng
tĩnh
vô hiệu
main(Chuỗi args[]){
MergeSort mer =
mới
Sắp xếp hợp nhất();
số nguyên
[] mảng = mer.getArray();
Hệ thống.out.println(
"Mảng gốc:"
+ Arrays.toString(mảng));
mer.mergeSort(mảng);
Hệ thống.out.println(
"Mảng được sắp xếp:"
+ Arrays.toString(mảng));
}
công cộng
số nguyên
[] lấy Mảng(){
Máy quét cin =
mới
Máy quét (System.in);
Hệ thống.out.print(
"Nhập độ dài của Mảng:"
);
số nguyên
chiều dài = cin.nextInt();
số nguyên
[] mảng =
mới
số nguyên
[chiều dài];
ngẫu nhiên r =
mới
Ngẫu nhiên();
vì
(
số nguyên
tôi =
0
; i < chiều dài; i++){
arr[i] = r.nextInt(
100
);
}
cin.close();
trở lại
sắp xếp;
}
công cộng
vô hiệu
hợp nhấtSắp xếp(
số nguyên
[] Một){
số nguyên
chỉ =
1
;
trong khi
(chiều dài < chiều dài a){
vì
(
số nguyên
tôi =
0
; i < chiều dài a; i +=
2
*chỉ một){
hợp nhất(a, i, len);
}
chỉ *=
2
;
}
}
công cộng
vô hiệu
hợp nhất(
số nguyên
[] Một,
số nguyên
Tôi,
số nguyên
chỉ một){
số nguyên
bắt đầu = i;
số nguyên
len_i = i + len;
số nguyên
j = i + len;
số nguyên
len_j = j + len;
số nguyên
[] nhiệt độ =
mới
số nguyên
[
2
*chỉ một];
số nguyên
đếm =
0
;
trong khi
(i < len_i && j < len_j && j < a.chiều dài){
nếu như
(a[i] <= a[j]){
temp[đếm++] = a[i++];
}
khác
{
temp[đếm++] = a[j++];
}
}
trong khi
(i < len_i && i < a.chiều dài){
temp[đếm++] = a[i++];
}
trong khi
(j < len_j && j < a.chiều dài){
temp[đếm++] = a[j++];
}
đếm =
0
;
trong khi
(bắt đầu < j && bắt đầu < a.length){
a[bắt đầu++] = temp[đếm++];
}
}
}
Tôi là một lập trình viên xuất sắc, rất giỏi!