Алгоритмы сортировок и их реализации


Главная
Меню сайта
Статистика

Наш опрос
Оцените мой сайт
Всего ответов: 267

Сортировка вставками (простыми включениями)


Сортировка вставками (англ. insertion sort) — простой алгоритм сортировки. Хотя этот метод сортировки намного менее эффективен чем более сложные алгоритмы (такие как быстрая сортировка), у него есть ряд преимуществ:

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

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




Реализация на C

typedef int array_type; /* или typedef char array_type;*/

void insertSort(array_type a[], int length) {
int i, j;
array_type value;
for (i = 1; i < length; i++) {
value = a[i];
for (j = i-1; (j >= 0) && (a[j] > value); j--) {
a[j+1] = a[j];
}
a[j+1] = value;
}
}

Реализация на C++

void insertSort(int a[],int length_a) {
int i,j,value;
for(i = 1; i < length_a; i++) {
value = a[i];
for (j = i-1; (j >= 0) && (a[j] > value); j--){
a[j+1] = a[j];
}
a[j+1] = value;
}
}

Реализация на PASCAL

{Arr = Array [1..Count]}

For i:=2 to Сount do
Begin
Tmp:=Arr[i];
j:=i-1;
While (j>0) and (Arr[j]<Tmp) do
Begin
Arr[j+1]:=Arr[j];
j:=j-1;
End;
Arr[j+1]:=Tmp;
End;

Литература



Copyright MyCorp © 2024
Создать бесплатный сайт с uCoz