Cách sử dụng hàm stable_sort() trong C++

Cach Su Dung Ham Stable Sort Trong C



Có nhiều hàm khác nhau trong C++ để sắp xếp các phần tử của dãy theo một thứ tự cụ thể. Tương tự như chức năng sắp xếp, stable_sort được sử dụng để sắp xếp các phần tử trong phạm vi (đầu tiên, cuối cùng). Sự khác biệt chính giữa chúng là stable_sort duy trì thứ tự tương đối của các phần tử có giá trị bằng nhau.

Trong hướng dẫn chi tiết này, chúng tôi sẽ chỉ ra hoạt động của stable_sort() trong C++.

Cách sử dụng hàm stable_sort() trong C++

Trong C++, các stable_sort() là một thuật toán thư viện chuẩn sắp xếp các phần tử theo thứ tự tăng dần và giữ nguyên thứ tự cho các phần tử tương đương. Điều này có nghĩa là nếu hai phần tử bằng nhau thì phần tử xuất hiện đầu tiên trong vùng chứa trước khi sắp xếp vẫn sẽ xuất hiện đầu tiên trong danh sách được sắp xếp. Chức năng này hoạt động bằng cách chia nhiều lần vùng chứa (mảng, vectơ, danh sách được liên kết), sắp xếp chúng một cách riêng biệt, sau đó hợp nhất chúng để có vùng chứa được sắp xếp. Nó đến dưới tập tin tiêu đề.







Cú pháp chung để sử dụng stable_sort() trong C++ là:



stable_sort ( RandomAccessIterator trước , RandomAccessIterator cuối cùng ) ;

Ở đây, Đầu tiên là trình vòng lặp trỏ đến phần tử đầu tiên trong phạm vi được sắp xếp và cuối cùng là iterator trỏ đến phần tử sau phần tử cuối cùng trong phạm vi được sắp xếp.



Các stable_sort() hàm sử dụng thứ tự không giảm để sắp xếp các mục trong phạm vi [đầu tiên, cuối cùng], tức là từ phần tử nhỏ nhất đến phần tử lớn nhất. Theo mặc định, chức năng so sánh các mục thông qua toán tử nhỏ hơn (<).





ví dụ 1

Xem xét mã ví dụ dưới đây, trong mã này, chúng tôi đã tạo danh sách véc tơ và khởi tạo nó với một số giá trị. Tiếp theo, chúng tôi đã sử dụng stable_sort() để sắp xếp các giá trị của vectơ đã cho theo thứ tự tăng dần. Các vectơ chưa sắp xếp và đã sắp xếp được in trên bảng điều khiển bằng cách sử dụng vòng lặp dựa trên phạm vi.

#include

#bao gồm

#include

sử dụng không gian tên std ;



int chủ yếu ( )

{

véc tơ < int > danh sách = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

cout << 'Các số trước khi sắp xếp:' ;

cho mỗi ( danh sách. bắt đầu ( ) , danh sách. kết thúc ( ) , [ ] ( int x ) {

cout << x << '' ;

} ) ;

stable_sort ( danh sách. bắt đầu ( ) , danh sách. kết thúc ( ) ) ;

cout << ' \N Các số sau khi sắp xếp: ' ;

cho mỗi ( danh sách. bắt đầu ( ) , danh sách. kết thúc ( ) , [ ] ( int x ) {

cout << x << '' ;

} ) ;



trở lại 0 ;

}




ví dụ 2

Trong ví dụ dưới đây, chúng tôi đã tạo một mảng số nguyên và khởi tạo nó với một số giá trị. Sau đó, theo mặc định, stable_sort() sắp xếp các phần tử theo thứ tự tăng dần:

#include

#include

sử dụng không gian tên std ;

int chủ yếu ( )

{

int mảng [ ] = { 12 , 7 , 7 , 1 , số 8 , 7 , 3 , 4 , 22 , 0 } ;

int N = kích thước của ( mảng ) / kích thước của ( mảng [ 0 ] ) ;

cout << 'Mảng ban đầu là: \N ' ;

( int Tôi = 0 ; Tôi < N ; ++ Tôi ) {

cout << mảng [ Tôi ] << '' ;

}

stable_sort ( mảng , mảng + N ) ;

cout << ' \N Mảng sau khi sắp xếp là: \N ' ;

( int Tôi = 0 ; Tôi < N ; ++ Tôi ) {

cout << mảng [ Tôi ] << '' ;

}

trở lại 0 ;

}

ví dụ 3

Các stable_sort lấy tham số thứ ba để chỉ định thứ tự sắp xếp phần tử. Trong ví dụ dưới đây, chúng tôi đã sử dụng lớn hơn() chức năng với stable_sort() để sắp xếp các phần tử của mảng theo thứ tự giảm dần

#include

#include

sử dụng không gian tên std ;

int chủ yếu ( )

{

int mảng [ ] = { 12 , 7 , 7 , 1 , số 8 , 7 , 3 , 4 , 22 , 0 } ;

int N = kích thước của ( mảng ) / kích thước của ( mảng [ 0 ] ) ;

cout << 'Mảng gốc: \N ' ;

( int Tôi = 0 ; Tôi < N ; ++ Tôi ) {

cout << mảng [ Tôi ] << '' ;

}

stable_sort ( mảng , mảng + N , lớn hơn < int > ( ) ) ;

cout << ' \N Mảng sau khi sắp xếp: \N ' ;

( int Tôi = 0 ; Tôi < N ; ++ Tôi ) {

cout << mảng [ Tôi ] << '' ;

}

trở lại 0 ;

}

dòng dưới cùng

Các stable_sort() hàm trong C++ là một thuật toán thư viện chuẩn được sử dụng để sắp xếp các phần tử trong vùng chứa theo thứ tự không giảm trong khi vẫn duy trì thứ tự tương đối của các phần tử trong vùng chứa có cùng giá trị. Nó có thể được sử dụng với các vùng chứa khác nhau như mảng, vectơ và danh sách được liên kết. Ngoài ra, cần tham số thứ ba để chỉ định thứ tự sắp xếp các phần tử.