Сортировка вставками — простой алгоритм сортировки. Этот алгоритм уступает по эффективности более сложным алгоритмом, у него есть ряд преимуществ:
На каждом шаге алгоритма мы выбираем один из элементов входных данных и вставляем его на нужную позицию в уже отсортированном списке, до тех пор, пока набор входных данных не будет исчерпан. Метод выбора очередного элемента из исходного массива произволен; может использоваться практически любой алгоритм выбора. Обычно (и с целью получения устойчивого алгоритма сортировки), элементы вставляются по порядку их появления во входном массиве.
Пример:
Wiki: Сортировка вставками
- эффективен на небольших наборах данных, на наборах данных до десятков элементов может оказаться лучшим;
- эффективен на наборах данных, которые уже частично отсортированы;
- это устойчивый алгоритм сортировки (не меняет порядок элементов, которые уже отсортированы);
- может сортировать список по мере его получения;
- использует O(1) временной памяти, включая стек.
На каждом шаге алгоритма мы выбираем один из элементов входных данных и вставляем его на нужную позицию в уже отсортированном списке, до тех пор, пока набор входных данных не будет исчерпан. Метод выбора очередного элемента из исходного массива произволен; может использоваться практически любой алгоритм выбора. Обычно (и с целью получения устойчивого алгоритма сортировки), элементы вставляются по порядку их появления во входном массиве.
Пример:
int* InsertSort(int* Array, int SizeArray) { int i=0; int tmp=0; int j=0; for(i=1; i<SizeArray; i++) { tmp=Array[i]; for(j=i-1; j>=0; j--) { if(tmp<Array[j]) break; Array[j+1]=Array[j]; Array[j]=tmp; } } return Array; }
Wiki: Сортировка вставками
Комментариев нет:
Отправить комментарий