Способы оптимизации кода для запуска в установленные сроки - PullRequest
0 голосов
/ 25 сентября 2019

вам дан несортированный массив, мы должны найти минимальное количество перестановок, необходимое для сортировки массива в порядке возрастания.

код, написанный мной, работает, но это не оптимизированный код. Эта проблема от hackerRank (https://www.hackerrank.com/challenges/minimum-swaps-2/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=arrays) истекает ограничение по времени, когда размер массива равен 100000

int main()
{
    int num;
    int swap=0;
    scanf("%d",&num);
    int arr[num];
    for(int i=0;i<num;i++)
    {
        scanf("%d",&arr[i]);
    }
    for(int i=0;i<num;i++)
    {
        if(arr[i]==i+1)
        {}
        else 
        {
            for(int j=i;j<num;j++)
            {
                if(i+1==arr[j])
                {
                    int temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                    swap++;
                }
            }
        }
    }
    printf("%d",swap);
    return 0;
}

, это ссылка для тестового случая, когда заканчивается время https://hr -testcases-us-east-1.s3.amazonaws.com/70816/input10.txt?AWSAccessKeyId=AKIAJ4WZFDFQTZRGO3QA&Expires=1569437814&Signature=zGqla8NqSOENSPJNt%2BkokJBX%2Fmk%3D&2_0_1_0_1_1_1_0_1_1_1_1_0_1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...