Сортировка вставками - C (СИ) (155077)
Формулировка задачи:
Можете подробно обьяснить программу???
void sort (int *mas, int kol){
int i,j,ii,x;
for(i=1;i<kol;i++){
x=mas[i];
for(j=0;j<i;j++)
if (mas[j]>x){
for(ii=i;ii>j;ii--)
mas[ii]=mas[ii-1];
mas[j]=x;
break;
}
}Решение задачи: «Сортировка вставками»
textual
Листинг программы
void sort (int *mas, int kol)
{
int i,j,ii,x;
for(i=1;i<kol;i++)
{
x=mas[i];
for(j=0;j<i;j++)
if (mas[j]>x)
{
for(ii=i;ii>j;ii--) mas[ii]=mas[ii-1];
mas[j]=x;
break;
}
}
}
Объяснение кода листинга программы
- В функции sort(int *mas, int kol) передается массив mas и его размер kol.
- В первой итерации внешнего цикла переменной i присваивается значение 1.
- Во второй итерации внешнего цикла переменной i присваивается значение 2.
- Внутренний цикл начинается с переменной x, которая равна значению mas[2].
- Внутренний цикл начинается с переменной j, которая равна 0.
- Если значение mas[0] больше x, то начинается вставка элемента x между элементами mas[0] и mas[1].
- Внутренний цикл начинается с переменной ii, которая равна i.
- Если значение mas[1] больше x, то начинается вставка элемента x между элементами mas[1] и mas[2].
- Внутренний цикл начинается с переменной ii, которая равна i.
- Если значение mas[2] больше x, то начинается вставка элемента x между элементами mas[2] и mas[3].
- Внутренний цикл начинается с переменной ii, которая равна i.
- Если значение mas[3] больше x, то начинается вставка элемента x между элементами mas[3] и mas[4].
- Внутренний цикл начинается с переменной ii, которая равна i.
- Если значение mas[4] больше x, то начинается вставка элемента x между элементами mas[4] и mas[5].
- Внутренний цикл начинается с переменной ii, которая равна i.
- Если значение mas[5] больше x, то начинается вставка элемента x между элементами mas[5] и mas[6].
- Внутренний цикл начинается с переменной ii, которая равна i.
- Если значение mas[6] больше x, то начинается вставка элемента x между элементами mas[6] и mas[7].
- Внутренний цикл начинается с переменной ii, которая равна i.
- Если значение mas[7] больше x, то начинается вставка элемента x между элементами mas[7] и mas[8].