В этом коде, когда я заменяю i + 1 на j + 1 в цикле while, это дает ошибку сегментации. Я не понимаю почему, так как значения
обе переменные одинаковы.
Этот фрагмент кода предназначен для поиска минимального числа перестановок, необходимых для сортировки неупорядоченного массива, состоящего из последовательных целых чисел, в порядке возрастания.
int minimumSwaps(int n, int* a) {
int i=0,j=0,temp=0,swap=0;
for(i=0;i<n-1;i++)
{
if(i+1!=a[i])
{
j=i;
while(a[j]!=i+1)
{
j++;
}
temp=a[i];
a[i]=a[j];
a[j]=temp;
swap++;
}
else
{
continue;
}
}
return swap;
}