sách gpt4 ăn đã đi

Thuật toán sắp xếp Java ba: phân tích ví dụ triển khai đệ quy và không đệ quy về sắp xếp hợp nhất

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 28 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết blog CFSDN này Thuật toán sắp xếp Java ba - các ví dụ triển khai đệ quy và không đệ quy của sắp xếp hợp nhất được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

Có hai loại hợp nhất: đệ quy và không đệ quy.

Ý tưởng của việc hợp nhất là: 1. Trước tiên, sắp xếp mảng ban đầu thành các nhóm gồm hai phần tử, sau đó hợp nhất chúng thành nhóm bốn và tám, cho đến khi toàn bộ mảng được hợp nhất 2. Khi hợp nhất hai mảng con, bạn cần; để sử dụng Một mảng tạm thời được sử dụng để lưu trữ hai mảng đã hợp nhất hiện tại 3. Sao chép mảng tạm thời trở lại vị trí tương ứng của mảng ban đầu;

Mã không đệ quy như sau:

?
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
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;
//Thuật toán không đệ quy để sắp xếp hợp nhất
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();
     ( 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){
       ( 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; //Nửa đầu của mảng đã hợp nhất
     số nguyên j = i + len;
     số nguyên len_j = j + len; //Nửa sau của mảng đã hợp nhất
     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){ // Lưu ý: i ở đây cũng có thể vượt quá độ dài của mảng
       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++];
     }
   }
}

Mã thực hiện của thuật toán đệ quy như sau:

?
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
bưu kiện sáp nhập;
 
công cộng lớp học Sáp nhậpSort {
   công cộng tĩnh vô hiệu hợp nhấtSắp xếp( số nguyên [] dữ liệu, số nguyên bên trái, số nguyên Phải){ //trái và phải đều là chỉ số dưới của phần tử số
     nếu như (trái<>
       số nguyên một nửa=(trái+phải)/ 2 ;
       mergeSort(dữ liệu, trái, một nửa);
       mergeSort(dữ liệu,một nửa+ 1 ,Phải);
       hợp nhất(dữ liệu, trái, phải);
     }
   }
   công cộng tĩnh vô hiệu hợp nhất( số nguyên []Một, số nguyên tôi, số nguyên h){
     số nguyên giữa=(l+h)/ 2 ;
     số nguyên tôi = l;
     số nguyên j=giữa+ 1 ;
     số nguyên đếm= 0 ;
     số nguyên nhiệt độ[]= mới số nguyên [h-l+ 1 ];
     trong khi (i<=giữa&&j<=h){
       nếu như (a[i]<>
         temp[đếm++]=a[i++];
       } khác {
         temp[đếm++]=a[j++];
       }   
     }
     trong khi (tôi<=giữa){
       temp[đếm++]=a[i++];
     }
     trong khi (j<=h){
       temp[đếm++]=a[j++];
     }
     đếm= 0 ;
     trong khi (l<=h){
       a[l++]=temp[số lượng++];
     }
   }
   công cộng tĩnh vô hiệu inMảng( số nguyên mảng[]){
     ( số nguyên k= 0 ;k
       Hệ thống.out.print(arr[k]+ "\t" );
     }
   }
   công cộng tĩnh số nguyên [] lấy Mảng(){
// int[] dữ liệu={4,2,3,1};
     số nguyên [] dữ liệu={ 543 , 23 , 45 , 65 , 76 , 1 , 456 , 7 , 77 , 88 , 3 , 9 };
     trở lại dữ liệu;
   }
 
   công cộng tĩnh vô hiệu main(Chuỗi args[]){
     số nguyên []a=getArray();
     Hệ thống.out.print( "Trước khi sắp xếp mảng:" );
     printArray(a);
     Hệ thống.out.print( "\N" );
     mergeSort(a, 0 ,a.chiều dài- 1 );
     Hệ thống.out.print( "Sau khi hợp nhất sắp xếp:" );
     printArray(a);
   }
}

Độ phức tạp về thời gian của sắp xếp hợp nhất là O(n*log2n) và độ phức tạp về không gian là O(n).

Sắp xếp hợp nhất là một phương pháp sắp xếp ổn định.

Phần này kết thúc bài viết này về các ví dụ triển khai đệ quy và không đệ quy của thuật toán sắp xếp Java thứ ba: sắp xếp hợp nhất. Để biết thêm thông tin về thuật toán sắp xếp hợp nhất và đệ quy Java không đệ quy, vui lòng tìm kiếm các bài viết trước của tôi. những bài viết dưới đây mong các bạn sẽ ủng hộ mình trong thời gian tới! .

Liên kết gốc: https://blog.csdn.net/y999666/article/details/50942604.

Cuối cùng, bài viết này về phân tích các ví dụ triển khai đệ quy và không đệ quy của sắp xếp hợp nhất trong Thuật toán sắp xếp Java Ba cho. Nếu bạn muốn biết thêm về các ví dụ triển khai đệ quy và không đệ quy của Sắp xếp hợp nhất trong Thuật toán sắp xếp Java Ba cho. nội dung phân tích, vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

28 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress