Примерами переформирования массива без изменения его размеров служат перестановки различного характера, в том числе сортировки. Особенностью этого класса задач является то, что, несмотря на постоянство количества элементов массива, для перестановки элемента сначала его необходимо найти. Таким образом, чтобы преобразовать массив, требуется несколько раз его просмотреть. Кроме того, для размещения элемента, ему необходимо освободить место, что требует сдвига всех элементов. Поэтому, даже для одномерного массива требуется применение нескольких вложенных циклов. Рассмотрим несколько типовых приемов.
Пример 1
Написать функцию упорядочивания массива по возрастанию его элементов.
Рис. 1.  Схема алгоритма сортировки
int my_sort(int a[], int n)
{
int i,j,imin,min;
for(i=0;i<n-1;i++)
{min=a[i];
imin=i;
for(j=i+1;j<n;j++)
if (a[j]<min)
{min=a[j];
imin=j;
}
a[imin]=a[i];
a[i]=min;
}
}