Làm thế nào để thực hiện chức năng sắp xếp trong C ++?



Bài viết này sẽ giúp bạn khám phá hàm Sort trong c ++ và trong quá trình này, bạn sẽ được trình bày chi tiết về khái niệm

Sắp xếp là một trong những hàm cơ bản và hữu ích nhất được áp dụng cho dữ liệu. Nó nhằm mục đích sắp xếp dữ liệu theo một kiểu cụ thể, có thể tăng hoặc giảm theo yêu cầu. Có một hàm nội trang trong C ++ STL có tên là ‘sort ()’ cho phép chúng ta thực hiện thuật toán sắp xếp một cách dễ dàng. Trong bài viết này, chúng ta sẽ khám phá Hàm Sắp xếp Trong C ++,

Các điểm sau sẽ được đề cập trong bài viết này:





Tiếp tục với bài viết này về Hàm sắp xếp trong C ++

Sắp xếp ( ) chức năng

Nó là một hàm tích hợp của tệp tiêu đề thuật toán, nó được sử dụng để sắp xếp các vùng chứa như một mảng, vectơ theo thứ tự xác định. Nội bộ chức năng này được triển khai dưới dạng Quick-sort
Quicksort là một thuật toán chia và chinh phục. Đầu tiên, Quicksort chia một danh sách lớn các phần tử thành hai danh sách con nhỏ hơn: các phần tử thấp hơn và các phần tử cao hơn. Quicksort sau đó sắp xếp đệ quy các danh sách con.



Các bước thực hiện như sau:
1. Chọn một phần tử ngẫu nhiên (thường là phần tử cuối cùng), được gọi là pivot, từ danh sách.
2. Sắp xếp lại danh sách theo cách sao cho tất cả các phần tử có giá trị nhỏ hơn pivot đến trước trục, trong khi tất cả các phần tử có giá trị lớn hơn pivot đứng sau nó và các giá trị bằng nhau có thể đi theo một trong hai cách. Quá trình này được gọi là hoạt động phân vùng.
3. Sắp xếp đệ quy danh sách con của các phần tử nhỏ hơn và danh sách con của các phần tử lớn hơn, lại chọn một trục trong danh sách con và chia chúng.
Trường hợp cơ sở của đệ quy là các danh sách có kích thước bằng không hoặc một, không bao giờ cần phải sắp xếp và do đó bằng cách kết hợp chúng, chúng tôi sắp xếp danh sách của mình.

Trên thực tế, Quicksort nhanh hơn các thuật toán O (n log n) khác như Sắp xếp chèn hoặc Sắp xếp bong bóng. Quicksort có thể được thực hiện với một thuật toán phân vùng tại chỗ, có nghĩa là toàn bộ việc sắp xếp có thể được thực hiện với chỉ O (log n) không gian bổ sung. Quicksort không phải là một loại ổn định.
Độ phức tạp của nó như sau:
Trường hợp tốt nhất - O (n log n)
Trường hợp tồi tệ nhất - O (n ^ 2)
Trường hợp Trung bình - O (n log n)

Cú pháp:
sắp xếp (đầu tiên, cuối cùng)
Đây,
đầu tiên - là chỉ mục (con trỏ) của phần tử đầu tiên trong phạm vi được sắp xếp.
last - là chỉ số (con trỏ) của phần tử cuối cùng trong phạm vi được sắp xếp.
Ví dụ, chúng ta muốn sắp xếp các phần tử của một mảng ‘arr’ từ 1 đến 10 vị trí, chúng ta sẽ sử dụng sort (arr, arr + 10) và nó sẽ sắp xếp 10 phần tử theo thứ tự Tăng dần.
Giá trị trả lại
không ai



Phức tạp

socket trong java là gì

Trung bình của độ phức tạp sắp xếp là N * log2 (N), trong đó N = cuối cùng - đầu tiên.

Dải dữ liệu
Đối tượng trong phạm vi [đầu tiên, cuối cùng) được sửa đổi.

Ngoại lệ
Quá tải với một tham số mẫu được đặt tên là lỗi báo cáo ExecutionPolicy như sau:
Nếu thuật toán không cấp phát bộ nhớ, std :: bad_alloc được đưa ra như một ngoại lệ.
Nếu việc thực thi một hàm được gọi như một phần của thuật toán, nó sẽ ném ra một ngoại lệ std :: end.

Tiếp tục với bài viết này về Hàm sắp xếp trong C ++

Ví dụ - Để sắp xếp dữ liệu theo thứ tự tăng dần:

#include using namespace std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (array [0] ) // 'sizeof' cung cấp kích thước của tổng mảng tức là kích thước của mỗi ký tự * không. của các ký tự // để nhận được không. của các ký tự // chúng ta chia sizeof (mảng) với kích thước của một ký tự bất kỳ của mảng // ở đây nó là mảng [0] sort (array, array + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Đầu ra:

Output- Hàm sắp xếp trong C ++ - Edureka

Giải trình

Từ ví dụ trên, chúng ta thấy rằng hàm sort () theo mặc định sắp xếp một mảng theo thứ tự tăng dần.

Tiếp tục với bài viết này về Hàm sắp xếp trong C ++

Ví dụ - Để sắp xếp dữ liệu theo thứ tự giảm dần:

Để sắp xếp dữ liệu của mảng theo thứ tự giảm dần, chúng ta cần giới thiệu một tham số thứ ba được sử dụng để chỉ định thứ tự sắp xếp các phần tử. Chúng ta có thể sử dụng hàm “great ()” để sắp xếp dữ liệu theo thứ tự giảm dần.

#include using namespace std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (array) / sizeof (array [0] ) sort (mảng, mảng + n, lớn hơn ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Đầu ra:

Hết hạn l anation
Ở đây hàm sort () thực hiện so sánh theo cách đặt phần tử lớn hơn trước.

Tiếp tục với bài viết này về Hàm sắp xếp trong C ++

Part_sort

C ++ STL cung cấp cho chúng ta một hàm sắp xếp từng phần, hàm tương tự như hàm sort () nhưng không giống như hàm sort (), nó không được sử dụng để sắp xếp toàn bộ phạm vi mà nó chỉ được sử dụng để sắp xếp một phần con của nó. Nó sắp xếp các phần tử trong phạm vi [đầu tiên, cuối cùng), theo cách mà các phần tử trước phần tử ở giữa được sắp xếp theo thứ tự tăng dần, trong khi các phần tử sau phần giữa được để nguyên.

Nó có thể được sử dụng để tìm phần tử lớn nhất nếu chúng ta sử dụng một đối tượng hàm để sắp xếp cho vị trí đầu tiên

Thí dụ

#include #include #include using namespace std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr part_sort (vec.begin (), vec.begin () + 1, vec.end (), lớn hơn ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Đầu ra:

Giải trình:
Đoạn mã trên có thể dùng để tìm số lớn nhất trong một dãy, để tìm số nhỏ nhất trong dãy ta chỉ cần bỏ lệnh lớn hơn.

Như vậy chúng ta đã kết thúc bài viết này về 'Hàm sắp xếp trong C ++'. Nếu bạn muốn tìm hiểu thêm, hãy xem Đào tạo Java của Edureka, một công ty học trực tuyến đáng tin cậy. Edureka's khóa học được thiết kế để đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

cách sử dụng thay thế trong java

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.