Как реализовать функцию сортировки в C ++?



Эта статья поможет вам изучить функцию сортировки в C ++ и в процессе даст вам подробную демонстрацию концепции.

Сортировка - одна из самых простых и полезных функций, применяемых к данным. Он направлен на упорядочивание данных определенным образом, которые могут увеличиваться или уменьшаться в соответствии с требованиями. В C ++ STL есть встроенная функция под названием «sort ()», которая позволяет нам легко выполнять алгоритм сортировки. В этой статье мы исследуем функцию сортировки в C ++,

В этой статье будут рассмотрены следующие указатели:





как преобразовать двоичную строку в десятичную в java

Продолжаем читать статью о функции сортировки в C ++

Сортировать ( ) функция

Это встроенная функция файла заголовка алгоритма, она используется для сортировки контейнеров, таких как массив, векторов в указанном порядке. Внутри эта функция реализована как Быстрая сортировка.
Quicksort - это алгоритм «разделяй и властвуй». Быстрая сортировка сначала делит большой список элементов на два меньших подсписка: нижние элементы и верхние элементы. Затем Quicksort рекурсивно сортирует подсписки.



Шаги следующие:
1. Выберите из списка случайный элемент (обычно последний элемент), называемый точкой поворота.
2. Измените порядок списка таким образом, чтобы все элементы со значениями меньше, чем точка поворота, располагались перед точкой поворота, в то время как все элементы со значениями больше, чем точка поворота, следовали за ней, а равные значения могли идти в любом случае, этот процесс называется операцией разделения.
3. Рекурсивно отсортируйте подсписок меньших элементов и подсписок больших элементов, снова выберите опорный элемент в подсписке и разделите их.
Базовый случай рекурсии - это списки нулевого или единичного размера, которые никогда не нужно сортировать, поэтому, комбинируя их, мы сортируем наш список.

Быстрая сортировка на практике работает быстрее, чем другие алгоритмы O (n log n), такие как сортировка вставкой или пузырьковая сортировка. Быстрая сортировка может быть реализована с помощью алгоритма разделения на месте, что означает, что вся сортировка может быть выполнена с использованием только O (log n) дополнительного пространства. Быстрая сортировка не является стабильной.
Его сложность такова:
Лучший случай - O (n log n)
Худший случай - O (n ^ 2)
Средний случай - O (n log n)

Синтаксис:
сортировка (первая, последняя)
Вот,
first - это индекс (указатель) первого элемента в сортируемом диапазоне.
last - это индекс (указатель) последнего элемента в сортируемом диапазоне.
Например, мы хотим отсортировать элементы массива «arr» от 1 до 10 позиций, мы будем использовать sort (arr, arr + 10), и он будет отсортировать 10 элементов в порядке возрастания.
Возвращаемое значение
Никто



Сложность

Среднее значение сложности сортировки составляет N * log2 (N), где N = last - first.

Диапазон данных
Объект в диапазоне [первый, последний) изменен.

Исключения
Перегрузки с параметром шаблона, который называется ExecutionPolicy, сообщают об ошибках следующим образом:
Если алгоритму не удается выделить память, в качестве исключения выдается std :: bad_alloc.
Если выполнение функции вызывается как часть алгоритма, генерируется исключение std :: terminate.

Продолжаем читать статью о функции сортировки в C ++

Пример - чтобы отсортировать данные в порядке возрастания:

#include с использованием пространства имен std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (array [0] ) // 'sizeof' дает размер всего массива, т.е. размер каждого символа * no. символов // так попасть нет. символов // делим sizeof (array) на размер любого символа массива // здесь array [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 } 

Вывод :

Вывод - функция сортировки в C ++ - Edureka

Объяснение

Из приведенного выше примера мы видим, что функция sort () по умолчанию сортирует массив в порядке возрастания.

Продолжаем читать статью о функции сортировки в C ++

Пример - чтобы отсортировать данные в порядке убывания:

Чтобы отсортировать данные массива в порядке убывания, нам нужно ввести третий параметр, который используется для указания порядка, в котором элементы должны быть отсортированы. Мы можем использовать функцию «больше ()» для сортировки данных в порядке убывания.

есть Java
#include с использованием пространства имен std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (array) / sizeof (array [0] ) sort (массив, массив + n, больше ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Вывод:

Опыт л нация
Здесь функция sort () выполняет сравнение таким образом, что перед ним ставится больший элемент.

Продолжаем читать статью о функции сортировки в C ++

Partial_sort

C ++ STL предоставляет нам функцию частичной сортировки, эта функция похожа на функцию sort (), но в отличие от функции sort () она не используется для сортировки всего диапазона, а используется для сортировки только его части. Он сортирует элементы в диапазоне [первый, последний) таким образом, что элементы до среднего элемента сортируются в порядке возрастания, тогда как элементы после среднего остаются как есть.

Его можно использовать для поиска самого большого элемента, если мы используем объект функции для сортировки по первой позиции

пример

#include #include #include с использованием пространства имен std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr partial_sort (vec.begin (), vec.begin () + 1, vec.end (), больше ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Вывод:

Пояснение:
Приведенный выше код можно использовать для поиска наибольшего числа в серии, чтобы найти наименьшее число в серии, нам просто нужно удалить большую команду.

На этом мы подошли к концу статьи о функции сортировки в C ++. Если вы хотите узнать больше, посетите обучение Java от Edureka, надежной компании, занимающейся онлайн-обучением. Эдурека Курсы предназначены для обучения как основным, так и продвинутым концепциям Java, а также различным фреймворкам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.