sách gpt4 ăn đã đi

Giải thích chi tiết về sắp xếp nhanh c++

In lại Tác giả: qq735679552 Thời gian cập nhật: 28-09-2022 22:32:09 31 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 trên blog CFSDN này Giải thích chi tiết về thuật toán sắp xếp nhanh c++ được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm đến bài viết này thì nhớ like nhé.

Hãy nói về sắp xếp nhanh chóng.

Sắp xếp nhanh, thuật toán sắp xếp được sử dụng phổ biến nhất trong thực tế, nhanh và hiệu quả. Nó được xếp vào hàng tốt nhất trong số các thuật toán N*logN cùng cấp. · .

Ý tưởng cơ bản: chia dữ liệu cần sắp xếp thành hai phần độc lập thông qua sắp xếp một lần. Tất cả dữ liệu trong một phần nhỏ hơn tất cả dữ liệu trong phần kia, sau đó nhanh chóng sắp xếp hai phần dữ liệu riêng biệt theo. phương pháp này. Toàn bộ quá trình sắp xếp có thể được thực hiện đệ quy để toàn bộ dữ liệu trở thành một chuỗi có thứ tự.

Giải thích chi tiết về sắp xếp nhanh c++

Bước này rất quan trọng để chuyển đổi chuỗi thành dạng trên. Chỉ bằng cách thực hiện bước này, bạn mới có thể thực hiện các lệnh gọi đệ quy đến phần bên trái và bên phải của trục xoay. Đây là mã để thực hiện phần này:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
số nguyên phân vùng_sắp xếp( số nguyên mảng[], số nguyên tôi, số nguyên đ) // l là ngoài cùng bên trái của mảng, r là ngoài cùng bên phải
{
   số nguyên j=l; //Dấu thiết kế
   số nguyên t=mảng[l]; //Đặt trục
 
   ( số nguyên tôi = l+1;tôi <=r;tôi++)
   {
     nếu như (arr[i]<>
       hoán đổi(arr[j+1],arr[i]);
       j++;
     }
   }
  
   hoán đổi(mảng[l],mảng[j]);
   trở lại j;
}

Trong đoạn mã trên, tôi coi phần tử ngoài cùng bên trái là phần tử xoay. Mã này rất hiệu quả cho hầu hết việc sắp xếp, nhưng nó không loại trừ các trường hợp riêng lẻ (khi mảng gần như được sắp xếp theo thứ tự hoặc khi có một số lượng lớn các phần tử lặp lại trong mảng. ). Tại thời điểm này, So với sắp xếp hợp nhất, thuật toán sắp xếp của chúng tôi không hiệu quả bằng. Điều này không thể tách rời khỏi nguyên tắc của thuật toán sắp xếp của chúng tôi. Một phân tích chi tiết cho thấy rằng khi mảng gần như được sắp xếp, sắp xếp nhanh chóng của chúng tôi thực sự xuống cấp O. (n^2) cấp độ, điều này rõ ràng là rất kém hiệu quả.

 Để tối ưu hóa những khuyết điểm trên, chúng ta có thể chọn ngẫu nhiên các trục, hoặc sử dụng các phương pháp sắp xếp nhanh khác (sắp xếp nhanh hai chiều, sắp xếp nhanh ba chiều). Cách thực hiện cơ bản của việc sắp xếp nhanh Không đi sâu vào chi tiết, bạn đọc quan tâm có thể tham khảo thông tin để tìm hiểu thêm.

Dưới đây là mã triển khai đầy đủ:

?
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
#include
#include
sử dụng không gian tên tiêu chuẩn;
//Thực hiện hàm đệ quy phân vùng
số nguyên phân vùng_sắp xếp( số nguyên mảng[], số nguyên tôi, số nguyên đ) // l là ngoài cùng bên trái của mảng, r là ngoài cùng bên phải
{
   số nguyên j=l; //Dấu thiết kế
   số nguyên t=mảng[l]; //Đặt trục
 
   ( số nguyên tôi = l+1;tôi <=r;tôi++)
   {
     nếu như (arr[i]<>
       hoán đổi(arr[j+1],arr[i]);
       j++;
     }
   }
  
   hoán đổi(mảng[l],mảng[j]);
   trở lại j;
}
//Thực hiện chức năng gọi đệ quy
vô hiệu phân vùng( số nguyên mảng[], số nguyên tôi, số nguyên đ)
{
   nếu như (l>=đ) trở lại ;
  
   số nguyên p=phân_phân_vùng(mảng,l,r);
   phân vùng (arr,l,p-1);
   phân vùng(arr,p+1,r);
}
 
số nguyên chủ yếu()
{
   số nguyên một[5];
   ( số nguyên i=0;i<5;i++)
   {
     cin>>a[i]; 
   }
   phân vùng(a,0,4);
  
  
   ( số nguyên i=0;i<5;i++)
   {
     cout<<> " "
   }
   trở lại 0; 
}

Liên kết gốc: http://www.cnblogs.com/agui521/p/6920663.html.

Cuối cùng, bài viết giải thích chi tiết về sắp xếp nhanh c++ này kết thúc tại đây. Nếu bạn muốn biết thêm về giải thích chi tiết về sắp xếp nhanh c++, vui lòng tìm kiếm bài viết 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. tương lai! .

31 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