рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Алгоритм

Алгоритм - раздел Образование, Unit 4. Sorting, Searching, and Complexity · 4.1 Sorting and Searching · 4.2 Complexity Assessments · Multiple-Choice Quiz Quicksort Является Быстрым Алгоритмом Сортировки, Который Решает Задачу Испол...

Quicksort является быстрым алгоритмом сортировки, который решает задачу используя проблему divide-and-conquer (разделяй и властвуй). Quicksort это рекурсия приводит массив элементов к элементарному виду, т.е. когда алгоритм рекурсивно делит массив на меньшие и еще более меньшие массивы. Quicksort сортирует эти очень маленькие массивы и комбинирует результаты создавая сортированную версию исходного массива. Из-за рекурсивного характера реализацию quicksort несколько трудно понять. Прежде, чем исследовать реализацию, мы вначале рассмотрим идею алгоритма.

Quicksort алгоритм может быть получен в следующих четырех основных шагах. Представленные в контексте сортировки массива, эти шаги следующие.

  1. Если размер массива равен нулю или содержит один элемент, то массив отсортирован. Это и есть основной случай.
  2. Выберите элемент в середине массива, чтобы использовать его в качестве центра. Это - шаг выбора центра.
  3. Создайте два новых массива. Поместите все элементы, которые являются меньше чем элемент центра в один из подмассивов, оставшиеся элементы в другой подмассив. Это - шаг разделения.
  4. В подмассиве, который содержит элементы меньше чем центральный, еще раз разделите через уже его центр еще на два подмассива (повтор шагов 2 и 3). Это - рекурсивный шаг дележа.

Рассмотрим решение задачи на примере. Обратимся к рис. 1.


Рисунок 1 Несортированный массив

Так как массив на рисунке 1 содержит больше чем один элемент, quicksort начинает работу с шага 2, выбора центра. Есть много различных стратегий, которые мы можем использовать, чтобы выбрать элемент центра. Остановимся на простейшем, включающий выбор среднего элемента массива как элемент центра. Этот элемент содержит значение 33. После выбора элемента центра quicksort делит остающиеся элементы в два подмассива. Один подмассив содержит элементы разделенного массива, значения которого являются меньше чем 33, другой подмассив содержит элементы, значения которых больше чем 33. Рисунок 2 иллюстрирует этот шаг раздела. Здесь на рисунке круг обозначает элемент центра.

 


Рисунок 2 Выбор центра и раздел

В первом подмассиве создадим еще два меньших еще меньших подмассива. Quicksort алгоритм рекурсивно вызывает себя в этих подмассивах. Заметьте, что оба из этих массивов содержат два или больше элемента. Поэтому, алгоритм выбирает элементы центра для каждого массива и делит их остающиеся элементы в меньшие массивы. Результат деления приведен на рисунке 3.


Рисунок 3 Второе разделение уровня

Quicksort алгоритм должен только выбрать элементы центра, которые содержат больше чем один элемент. Теперь в поле зрения у нас четыре подмассива, они на рисунке 3 в нижнем ряду. Считывая числа с лево на право, видим, первый подмассив содержит только один элемент со значением 3. Второй подмассив содержит элементы 12 и 21, и третий подмассив содержит элементы 52 и 53. Четвертый подмассив содержит ноль элементов. Знак пустого множества (круг с диагональной чертой) обозначает, что этот подмассив содержит ноль элементов. Quicksort алгоритм не трогает первый и четвертый подмассивы, так как каждый из них содержит меньше чем два элемента (см. шаг 1). В этой точке эти два подмассива считаются уже отсортированными. Так как второй и третий массивы, содержат больше чем один элемент, то, вероятно, они не находятся в отсортированном порядке. Quicksort должен рекурсивно рассмотреть их и разделить на подмассивы, см рис. 4, нижняя строка.


Рисунок 4 После последнего необходимого раздела

Рекурсивная природа quicksort разделяет исходный массив на еще меньшие подмассивы. В конечном счете разделение приводит к окончательной сортировке всего массива. Рисунок 5 изображает отсортированную версию исходного массива.

 


Рисунок 5 Сортированный массив

– Конец работы –

Эта тема принадлежит разделу:

Unit 4. Sorting, Searching, and Complexity · 4.1 Sorting and Searching · 4.2 Complexity Assessments · Multiple-Choice Quiz

На сайте allrefs.net читайте: "Unit 4. Sorting, Searching, and Complexity · 4.1 Sorting and Searching · 4.2 Complexity Assessments · Multiple-Choice Quiz"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Алгоритм

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Binary Search
A binary search is a fast search algorithm suitable for data sets of any reasonable size encountered. Unlike a linear search, it is suitable even for very large data sets because it eliminates larg

Sorting Overview
Many different basic sorting algorithms exist. Each of these algorithms has unique characteristics, behaviors, and requirements. For example, for the same set of data, one algorithm may perform far

Selection Sort
Selection sort is a basic sorting algorithm that works by making iterations, or passes, through the data being sorted. Each pass results in the placement of one element into its correct location. A

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

Краткий обзор
Существуют много различных алгоритмов сортировки. У каждого из этих алгоритмов есть уникальные характеристики, поведения, и требования. Например, для одной и той же задачи, один алгоритм может выпо

Selection Sort (Вид выбора)
Алгоритм selection sort является основным алгоритмом сортировки, который работает посредством итерации, или передачи сортируемых данных. Каждая передача приводит к перемещению одного элемента в его

Реализация
Код quicksort реализации приведен в листинге 1. Эта quicksort реализация использует основную стратегию выбора центра как выбор среднего элемента. Это простой подход к реализации, и иногда он может

Использование функции сортировки STL
Стандартная библиотека шаблонов включает функции, которые программисты могут использовать, чтобы сортировать массивы контейнеров. Одна из этих функций sort функция. Функция sort выполняет быстрый s

Краткий обзор Хэш-таблиц
Хэш-таблица это структура данных ассоциативного массива, которая поддерживает очень быструю вставку элементов, удаление, и извлечение. Т.е. она позволяет хранить пары (ключ, значение) и выпо

Хеш-функции
Операции использующие хэш-таблицы эффективны, потому что позиция хранимой суммы может быть вычислена, используя ключ. Хэш-таблицы обычно реализуются как массив значений, а хеш-функция исполь

Реализация Хэш-таблицы
Следующий файл заголовочного файла и реализации объявляет и определяет шаблонный класс сопоставления хеша. Класс берет четыре шаблонных параметра. Первым является ключевой тип, и вторым является ти

The Algorithm
Quicksort is a fast sorting algorithm that uses a divide-and-conquer problem solving approach. Unlike the basic sorting algorithms we have already examined, quicksort uses recursion. Given an array

An Implementation
A quicksort implementation appears in Listing 1. This quicksort implementation uses a basic pivot selection strategy of selecting the middle element. This is a simple approach to implement, but one

Using the STL Sorting Functions
The Standard Template Library includes functions that programmers can use to sort a variety of containers. One of these functions is the sort function. The sort function performs a fast sort (typic

Overview of Hash Tables
A hash table is a data structure that supports very fast element insertion, removal, and retrieval. A hash table that is properly configured for the elements it contains can support these op

Hash Functions
Operations using hash tables are efficient because the position of a stored value can be calculated using the key. Hash tables are implemented typically as an array of values. A hash function

A Hash Table Implementation
The following header file and implementation file declares and defines a template hash map class. The class takes four template parameters. The first is the key type and the second is the value typ

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги