🗊Презентация Простые сортировки

Нажмите для полного просмотра!
Простые сортировки, слайд №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

Содержание

Вы можете ознакомиться и скачать презентацию на тему Простые сортировки. Доклад-сообщение содержит 25 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Лекция 10 
 Простые сортировки
Описание слайда:
Лекция 10 Простые сортировки

Слайд 2





Задача сортировки
Задача сортировки состоит в том, чтобы  упорядочить N объектов    a1, ... , аN:  
переставить их в такой последовательности  			аp1 , ..., apN ,   
 чтобы их ключи расположились в неубывающем порядке  		                                                       
 			kp1 < kp2 < ... < kpN.
Описание слайда:
Задача сортировки Задача сортировки состоит в том, чтобы упорядочить N объектов a1, ... , аN: переставить их в такой последовательности аp1 , ..., apN , чтобы их ключи расположились в неубывающем порядке kp1 < kp2 < ... < kpN.

Слайд 3





Свойство устойчивости сортировки
Сортировка называется устойчивой, 
если она  удовлетворяет условию,  согласно которому записи с одинаковыми ключами остаются в прежнем  порядке:
kРi = kРj и i < j, то pi < pj 
При устойчивой сортировке относительный порядок элементов с одинаковыми ключами не меняется.
Описание слайда:
Свойство устойчивости сортировки Сортировка называется устойчивой, если она удовлетворяет условию, согласно которому записи с одинаковыми ключами остаются в прежнем порядке: kРi = kРj и i < j, то pi < pj При устойчивой сортировке относительный порядок элементов с одинаковыми ключами не меняется.

Слайд 4





Виды сортировок
Методы сортировки обычно разделяют на  две категории:                                                        внутреннюю сортировку  массивов и         
	внешнюю — сортировку файлов.
Методы сортировки можно разбить на несколько основных классов в зависимости от лежащего в их основе приема сортировки:
включения;
выбора;
обмена;
подсчета;
разделения;
слияния.
Описание слайда:
Виды сортировок Методы сортировки обычно разделяют на две категории: внутреннюю сортировку массивов и внешнюю — сортировку файлов. Методы сортировки можно разбить на несколько основных классов в зависимости от лежащего в их основе приема сортировки: включения; выбора; обмена; подсчета; разделения; слияния.

Слайд 5





Сортировка включением (вставками)
Разделим условно все элементы массива на две последовательности:  
входную    ai, ... , аN
и готовую последовательность     a1, ... , аi-1 
элементы которой уже отсортированы. 
В алгоритмах, основанных на методе включения, на каждом i-м  шаге i-й элемент входной  последовательности вставляется в подходящее место готовой последовательности.
Сортировка простыми включениями наиболее очевидна. 
Пусть 2 < i < N,  a1, ... , аi-1  уже отсортированы:
			a1  а2  ...  ai-1.
Будем сравнивать по очереди аi с ai-1, аi-2, ...  до тех пор, пока не обнаружим, что элемент  аi следует вставить между aj и aj+1 (0  j  i  1) элементами. 
После этого или в процессе поиска подвинем записи aj+1, ..., ai-1 на одно место вправо и переместим запись аi в позицию j + 1.
Описание слайда:
Сортировка включением (вставками) Разделим условно все элементы массива на две последовательности: входную ai, ... , аN и готовую последовательность a1, ... , аi-1 элементы которой уже отсортированы. В алгоритмах, основанных на методе включения, на каждом i-м шаге i-й элемент входной последовательности вставляется в подходящее место готовой последовательности. Сортировка простыми включениями наиболее очевидна. Пусть 2 < i < N, a1, ... , аi-1 уже отсортированы: a1  а2  ...  ai-1. Будем сравнивать по очереди аi с ai-1, аi-2, ... до тех пор, пока не обнаружим, что элемент аi следует вставить между aj и aj+1 (0  j  i  1) элементами. После этого или в процессе поиска подвинем записи aj+1, ..., ai-1 на одно место вправо и переместим запись аi в позицию j + 1.

Слайд 6





Пример
Процесс сортировки включениями покажем на примере последовательности, состоящей из восьми ключей:
 i = 1		40 | 51   8   38  90  14  2  63
 i = 2 		40  51 | 8   38   90  14  2  63
 i = 3		8  40  51 |  38   90  14  2  63 
 i = 4		8  38  40  51 |   90  14  2  63 
 i = 5		8  38  40  51   90 |  14  2  63
i = 6		8  14  38 40  51   90 |   2  63
i = 7		2  8  14  38  40  51   90 |  63
i = 8		2  8  14  38  40  51   63  90 |
Описание слайда:
Пример Процесс сортировки включениями покажем на примере последовательности, состоящей из восьми ключей: i = 1 40 | 51 8 38 90 14 2 63 i = 2 40 51 | 8 38 90 14 2 63 i = 3 8 40 51 | 38 90 14 2 63 i = 4 8 38 40 51 | 90 14 2 63 i = 5 8 38 40 51 90 | 14 2 63 i = 6 8 14 38 40 51 90 | 2 63 i = 7 2 8 14 38 40 51 90 | 63 i = 8 2 8 14 38 40 51 63 90 |

Слайд 7





Алгоритм
Условно разделить массив A на отсортированную и несортированную части. К сортированной части сначала относится только первый элемент.
 цикл по i от 2 до N  с шагом 1 выполнять 
  // i – номер первого элемента в несортированной части массива
    x:= A[i]; 			    
 j := i – 1;
  // Все элементы из отсортированной части, большие,
  // чем x, сдвинуть на одну позицию вправо:
   пока j>0 и A[j]>x выполнять 
        A[j+1] := A[j];	   	    
	 j := j – 1; 		    
     конец пока 	 
   // Элемент x поставить на свое место по порядку:
	A[j+1] := x;		   	    
 конец цикла
Описание слайда:
Алгоритм Условно разделить массив A на отсортированную и несортированную части. К сортированной части сначала относится только первый элемент.  цикл по i от 2 до N с шагом 1 выполнять // i – номер первого элемента в несортированной части массива x:= A[i]; j := i – 1; // Все элементы из отсортированной части, большие, // чем x, сдвинуть на одну позицию вправо: пока j>0 и A[j]>x выполнять A[j+1] := A[j]; j := j – 1; конец пока // Элемент x поставить на свое место по порядку: A[j+1] := x; конец цикла

Слайд 8





Анализ алгоритма
На i-м шаге максимально возможное число сравнений Сi во внутреннем цикле равно i -1; 
если предположить, что все перестановки N ключей равновероятны, число сравнений в среднем равно i/2.
 Для Mi, количества пересылок на i-м шаге, 
максимальное Мi = Сi + 2. 
Всего шагов N - 1.
Следовательно, количество сравнений и пересылок в худшем и лучшем случаях:
Описание слайда:
Анализ алгоритма На i-м шаге максимально возможное число сравнений Сi во внутреннем цикле равно i -1; если предположить, что все перестановки N ключей равновероятны, число сравнений в среднем равно i/2. Для Mi, количества пересылок на i-м шаге, максимальное Мi = Сi + 2. Всего шагов N - 1. Следовательно, количество сравнений и пересылок в худшем и лучшем случаях:

Слайд 9





Сортировка бинарными включениями
Для нахождения места для i-го элемента можно использовать метод  бинарного  поиска  элемента в отсортированном массиве, в котором на i-ом шаге выполняется ~ log2i сравнений. 
Поэтому всего будет произведено ~ Nlog2N сравнений. 
Но количество пересылок в этом методе не изменится
Описание слайда:
Сортировка бинарными включениями Для нахождения места для i-го элемента можно использовать метод бинарного поиска элемента в отсортированном массиве, в котором на i-ом шаге выполняется ~ log2i сравнений. Поэтому всего будет произведено ~ Nlog2N сравнений. Но количество пересылок в этом методе не изменится

Слайд 10





Сортировка простым выбором
Методы сортировки посредством выбора основаны на идее многократного выбора. 
На i-м шаге выбирается наименьший элемент из  входной последовательности ai, ..., an и меняется местами с ai-м. 
Таким образом, после шага i на первом месте во входной последовательности будет находиться наименьший элемент. 
Затем этот элемент перемещается из входной в готовую последовательность. 
Процесс выбора наименьшего элемента из входной последовательности повторяется до тех пор, пока в ней останется только один элемент.
Описание слайда:
Сортировка простым выбором Методы сортировки посредством выбора основаны на идее многократного выбора. На i-м шаге выбирается наименьший элемент из входной последовательности ai, ..., an и меняется местами с ai-м. Таким образом, после шага i на первом месте во входной последовательности будет находиться наименьший элемент. Затем этот элемент перемещается из входной в готовую последовательность. Процесс выбора наименьшего элемента из входной последовательности повторяется до тех пор, пока в ней останется только один элемент.

Слайд 11





Пример
Проиллюстрируем этот метод на той же последовательности 
		40  51  8  38  90  14  2  63.
На первом шаге находим наименьший элемент 2, обмениваем его с первым элементом 40 и перемещаем в готовую последовательность:
 	  2    51  8  38  90  14  40  63
	  2  8    51  38  90  14  40  63
       2  8  14    38  90  51  40  63
       2  8  14  38    90  51  40  63
       2  8  14  38   40   51  90  63
	  2  8  14  38   40  51   90  63
       2  8  14  38   40  51  63   90
Описание слайда:
Пример Проиллюстрируем этот метод на той же последовательности 40 51 8 38 90 14 2 63. На первом шаге находим наименьший элемент 2, обмениваем его с первым элементом 40 и перемещаем в готовую последовательность: 2  51 8 38 90 14 40 63 2 8  51 38 90 14 40 63 2 8 14  38 90 51 40 63 2 8 14 38  90 51 40 63 2 8 14 38 40  51 90 63 2 8 14 38 40 51  90 63 2 8 14 38 40 51 63  90

Слайд 12





Обсуждение
Данный метод в некотором смысле противоположен сортировке простыми включениями. 
При сортировке простым выбором рассматриваются все элементы входной последовательности и для фиксированного места из нее выбирается наименьший элемент. 
При этом не возникает необходимости "сдвига" участка массива, поскольку выбранный элемент вставляется всегда в конец готовой последовательности. Вытесняемый же элемент достаточно переставить на освободившееся место в несортированной входной части.
Описание слайда:
Обсуждение Данный метод в некотором смысле противоположен сортировке простыми включениями. При сортировке простым выбором рассматриваются все элементы входной последовательности и для фиксированного места из нее выбирается наименьший элемент. При этом не возникает необходимости "сдвига" участка массива, поскольку выбранный элемент вставляется всегда в конец готовой последовательности. Вытесняемый же элемент достаточно переставить на освободившееся место в несортированной входной части.

Слайд 13





Алгоритм
Условно разделить массив А на отсортированную и несортированную части. Сначала весь массив — это несортированная часть. 
цикл по i от 1 до N–1 с шагом 1 выполнять
 // i – номер первого элемента в несортированной части массива
 	r:= i; 					   
// Найти минимальный элемент в несортированной части массива:
   	 цикл по j от i+1 до N с шагом 1 выполнять 
    		если А[j] < A[r] то r:= j;		
 	конец цикла
// Найденный минимальный элемент поменять местами с
// первым элементом несортированной части:
   если i  r    то Обмен (i, r);			   
// Он будет последним элементом новой сортированной
// части массива A.
конец цикла
Описание слайда:
Алгоритм Условно разделить массив А на отсортированную и несортированную части. Сначала весь массив — это несортированная часть. цикл по i от 1 до N–1 с шагом 1 выполнять // i – номер первого элемента в несортированной части массива r:= i; // Найти минимальный элемент в несортированной части массива: цикл по j от i+1 до N с шагом 1 выполнять если А[j] < A[r] то r:= j; конец цикла // Найденный минимальный элемент поменять местами с // первым элементом несортированной части: если i  r то Обмен (i, r); // Он будет последним элементом новой сортированной // части массива A. конец цикла

Слайд 14





Анализ
Число Сi сравнений на i-м шаге не зависит от начального порядка
элементов. 
На первом шаге первый элемент сравнивается с остальными N - 1
элементами, на втором шаге число сравнений будет — N - 2 и т. д. 
Поэтому число сравнений есть 
		С = (N – 1) + (N – 2) + ... + 1 = N * (N - 1)/2 
Максимальное число пересылок Мmах = N -1 так как на  каждом 
проходе выполняется обмен найденного минимального элемента с i-м. 
Вероятность того, что i-й элемент уже стоит на месте, невелика, поэтому средняя оценка М близка к максимальной.
Описание слайда:
Анализ Число Сi сравнений на i-м шаге не зависит от начального порядка элементов. На первом шаге первый элемент сравнивается с остальными N - 1 элементами, на втором шаге число сравнений будет — N - 2 и т. д. Поэтому число сравнений есть С = (N – 1) + (N – 2) + ... + 1 = N * (N - 1)/2 Максимальное число пересылок Мmах = N -1 так как на каждом проходе выполняется обмен найденного минимального элемента с i-м. Вероятность того, что i-й элемент уже стоит на месте, невелика, поэтому средняя оценка М близка к максимальной.

Слайд 15





Анализ, продолжение
Мы видим, что число сравнений в методе выбора всегда равно максимальному числу сравнений в методе простых включений, в то время как число перемещений, наоборот, минимально. 
Если вспомнить, что сравниваются ключи позиций, а перемещаются записи целиком, то метод выбора, экономящий число перемещений может на практике оказаться предпочтительней.
Описание слайда:
Анализ, продолжение Мы видим, что число сравнений в методе выбора всегда равно максимальному числу сравнений в методе простых включений, в то время как число перемещений, наоборот, минимально. Если вспомнить, что сравниваются ключи позиций, а перемещаются записи целиком, то метод выбора, экономящий число перемещений может на практике оказаться предпочтительней.

Слайд 16





Сортировка простым обменом 
Метод основан на принципе сравнения и обмена пар соседних элементов. 
На первом шаге сравним последний и предпоследний элементы, если они не упорядочены, поменяем их местами. 
Далее проделаем то же со вторым и третьим элементами от конца массива, третьим и четвертым и т. д. до первого и второго с начала массива. 
При выполнении этой последовательности операций меньшие элементы в каждой паре продвинутся влево, наименьший займет первое место в массиве. 
Повторим этот же процесс от N-го до 2-го элемента, потом от N-го до 3-го и т. д. 

i-й проход по массиву приводит к «всплыванию» наименьшего элемента из входной последовательности на i-e место в готовую последовательность.
Описание слайда:
Сортировка простым обменом Метод основан на принципе сравнения и обмена пар соседних элементов. На первом шаге сравним последний и предпоследний элементы, если они не упорядочены, поменяем их местами. Далее проделаем то же со вторым и третьим элементами от конца массива, третьим и четвертым и т. д. до первого и второго с начала массива. При выполнении этой последовательности операций меньшие элементы в каждой паре продвинутся влево, наименьший займет первое место в массиве. Повторим этот же процесс от N-го до 2-го элемента, потом от N-го до 3-го и т. д. i-й проход по массиву приводит к «всплыванию» наименьшего элемента из входной последовательности на i-e место в готовую последовательность.

Слайд 17





Пример
Процесс сортировки обменами покажем на примере все той же последовательности, состоящей из восьми ключей:
 i = 0		40  51   8   38  90  14  2  63
 i = 1 		 2   40   51   8  38  90 14 63
 i = 2		 2     8   40  51 14  38 90 63
 i = 3		 2     8   14  40  51 38 63 90
 i = 4		 2     8   14  38  40 51 63 90
i = 5		 2     8   14  38  40 51 63 90
i = 6		 2     8   14  38  40 51 63 90
i = 7		 2     8   14  38  40 51 63 90
Описание слайда:
Пример Процесс сортировки обменами покажем на примере все той же последовательности, состоящей из восьми ключей: i = 0 40 51 8 38 90 14 2 63 i = 1 2 40 51 8 38 90 14 63 i = 2 2 8 40 51 14 38 90 63 i = 3 2 8 14 40 51 38 63 90 i = 4 2 8 14 38 40 51 63 90 i = 5 2 8 14 38 40 51 63 90 i = 6 2 8 14 38 40 51 63 90 i = 7 2 8 14 38 40 51 63 90

Слайд 18





Алгоритм (метод пузырька)
цикл по i от 2 до N с шагом 1 выполнять	
  // проход от конца массива к началу:
	цикл по j от N до i с шагом -1 выполнять 
   	// если два рядом стоящих элемента нарушают
   		// порядок по возрастанию, то их поменять местами.
      если  A[j] < A[j–1]
		 то	Обмен(j, j–1);	 
   конец цикла
конец цикла
Описание слайда:
Алгоритм (метод пузырька) цикл по i от 2 до N с шагом 1 выполнять // проход от конца массива к началу: цикл по j от N до i с шагом -1 выполнять // если два рядом стоящих элемента нарушают // порядок по возрастанию, то их поменять местами. если A[j] < A[j–1] то Обмен(j, j–1); конец цикла конец цикла

Слайд 19





Анализ
Количество сравнений Сi на i – м проходе равно N - i, что приводит к уже известному выражению для С: 

С = (N - 1) + (N - 2) +  ...  + 1 = N∙(N - 1)/2 
Минимальное количество пересылок Mmin= 0, 
если массив уже упорядочен, 
максимальное Мтах = С, если массив упорядочен по убыванию.
Описание слайда:
Анализ Количество сравнений Сi на i – м проходе равно N - i, что приводит к уже известному выражению для С: С = (N - 1) + (N - 2) + ... + 1 = N∙(N - 1)/2 Минимальное количество пересылок Mmin= 0, если массив уже упорядочен, максимальное Мтах = С, если массив упорядочен по убыванию.

Слайд 20





Улучшение метода пузырька 
1) Нередко случается, что последние проходы сортировки  простым обменом работают «вхолостую», так как элементы уже упорядочены. 
Один из способов улучшения алгоритма сортировки пузырьком состоит в том, чтобы запомнить, производился ли на очередном проходе какой-либо обмен. 
Если ни одного обмена не было, то алгоритм может закончить работу.
2) Асимметрия метода: один неправильно расположенный «пузырек» на «тяжелом» конце почти отсортированного массива «всплывет» на место за один проход:
	8        14        38        40        51        63        90        2
Неправильно расположенный «камень» на «легком» конце будет «опускаться» на правильное место только только по одному шажку на каждом проходе:
	90        2         8        14        40        51        63
Описание слайда:
Улучшение метода пузырька 1) Нередко случается, что последние проходы сортировки простым обменом работают «вхолостую», так как элементы уже упорядочены. Один из способов улучшения алгоритма сортировки пузырьком состоит в том, чтобы запомнить, производился ли на очередном проходе какой-либо обмен. Если ни одного обмена не было, то алгоритм может закончить работу. 2) Асимметрия метода: один неправильно расположенный «пузырек» на «тяжелом» конце почти отсортированного массива «всплывет» на место за один проход: 8 14 38 40 51 63 90 2 Неправильно расположенный «камень» на «легком» конце будет «опускаться» на правильное место только только по одному шажку на каждом проходе: 90 2 8 14 40 51 63

Слайд 21





Шейкер-сортировка (алгоритм)
Пусть F — логическая переменная, принимающая истинное значение, если во время прохода по массиву были обмены двух рядом стоящих элементов, left – левая граница несортированной части массива, а right – ее правая граница.
left := 1; right := N;
F := истина;	
пока F выполнять 
    F:= ложь;
    i:= left;
    //Проход по массиву от начала к концу:
  пока i < right выполнять   
       если A[i] > A[i + 1] то 
		// переставить два рядом стоящих элемента, нарушающие порядок:
    	начало
      		Обмен (i, i+1);    
      	    	F := истина;
      конец
      i := i + 1;
  конец пока
  // Сдвинуть правую границу влево на одну позицию:
  right := right – 1;
Описание слайда:
Шейкер-сортировка (алгоритм) Пусть F — логическая переменная, принимающая истинное значение, если во время прохода по массиву были обмены двух рядом стоящих элементов, left – левая граница несортированной части массива, а right – ее правая граница. left := 1; right := N; F := истина; пока F выполнять F:= ложь; i:= left; //Проход по массиву от начала к концу: пока i < right выполнять если A[i] > A[i + 1] то // переставить два рядом стоящих элемента, нарушающие порядок: начало Обмен (i, i+1); F := истина; конец i := i + 1; конец пока // Сдвинуть правую границу влево на одну позицию: right := right – 1;

Слайд 22





Шейкер-сортировка (продолжение алгоритма)
// Если были обмены во время предыдущего прохода,
если F 
то // совершить проход по массиву от конца к началу:
  начало 
     F := ложь;	
     i:= right; 			  
          пока i > left выполнять 	  
             если A[i] < A[i – 1] 
    		то	// переставить рядом стоящие элементы,
				// нарушающие порядок:
              начало
                Обмен (i, i–1);	  
         	   F := истина;
              конец
            i := i – 1;
          конец пока
   конец
   // Сдвинуть левую границу вправо на одну позицию:
   left := left + 1;
конец пока  // Цикл повторять до тех пор, пока F не 
         		//останется равной значению ложь.
 
Описание слайда:
Шейкер-сортировка (продолжение алгоритма) // Если были обмены во время предыдущего прохода, если F то // совершить проход по массиву от конца к началу: начало F := ложь; i:= right; пока i > left выполнять если A[i] < A[i – 1] то // переставить рядом стоящие элементы, // нарушающие порядок: начало Обмен (i, i–1); F := истина; конец i := i – 1; конец пока конец // Сдвинуть левую границу вправо на одну позицию: left := left + 1; конец пока // Цикл повторять до тех пор, пока F не //останется равной значению ложь.  

Слайд 23





Анализ
Стin= N –1. 
Кнут показал, что среднее число сравнений пропорционально 
N2 - N. 
Но все предложенные улучшения не влияют на число обменов. 
В самом деле, каждый обмен уменьшает число инверсий в массиве на 1, следовательно, при любом алгоритме, основанном на обмене пар соседних элементов, число необходимых перестановок одинаково и равно числу инверсий в массиве.
Сортировка обменом и ее улучшенная сортировка хуже, чем сортировка включениями и выбором. 
Шейкер-сортировку выгодно использовать тогда, когда массив
почти упорядочен.
Описание слайда:
Анализ Стin= N –1. Кнут показал, что среднее число сравнений пропорционально N2 - N. Но все предложенные улучшения не влияют на число обменов. В самом деле, каждый обмен уменьшает число инверсий в массиве на 1, следовательно, при любом алгоритме, основанном на обмене пар соседних элементов, число необходимых перестановок одинаково и равно числу инверсий в массиве. Сортировка обменом и ее улучшенная сортировка хуже, чем сортировка включениями и выбором. Шейкер-сортировку выгодно использовать тогда, когда массив почти упорядочен.

Слайд 24





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

Слайд 25





Алгоритм (на одном массиве)
Условно разделить массив A на отсортированную и несортированную части. Пусть i – номер первого элемента в несортированной части массива.
i := 1;  
пока i < N выполнять 
   r:= 1;
		// Посчитать количество элементов в массиве, меньших
   		// i-го элемента и записать это число в переменную r
   цикл по j от 1 до N с шагом 1 выполнять
      если A[i] > A[j]
      то r := r + 1;
   конец цикла
   если r  i    // i-й элемент стоит на своем месте, 
   то i := i + 1 // увеличить сортированную часть на 1 элемент
   иначе
      начало
      // вычислить позицию, куда нужно поставить i-й элемент:
         пока A[r] = A[i] выполнять r:= r+1
   	   конец пока
   	// поменять его местами с тем элементом,
       	// который в этой позиции находится:
         Обмен (r, i) 
      конец;
конец пока
Описание слайда:
Алгоритм (на одном массиве) Условно разделить массив A на отсортированную и несортированную части. Пусть i – номер первого элемента в несортированной части массива. i := 1; пока i < N выполнять r:= 1; // Посчитать количество элементов в массиве, меньших // i-го элемента и записать это число в переменную r цикл по j от 1 до N с шагом 1 выполнять если A[i] > A[j] то r := r + 1; конец цикла если r  i // i-й элемент стоит на своем месте, то i := i + 1 // увеличить сортированную часть на 1 элемент иначе начало // вычислить позицию, куда нужно поставить i-й элемент: пока A[r] = A[i] выполнять r:= r+1 конец пока // поменять его местами с тем элементом, // который в этой позиции находится: Обмен (r, i) конец; конец пока



Похожие презентации
Mypresentation.ru
Загрузить презентацию