اكتب برنامج بلغة C لحساب عدد الانقلابات (inversion) في مصفوفة معينة

  • برمجة
  • برمجة سي c

اكتب برنامج بلغة C لحساب عدد الانقلابات (inversion) في مصفوفة معينة

الخرج المتوقع :

The given array is :  1  9  6  4  5  
The inversions are: (9, 6)  (9, 4)  (9, 5)  (6, 4)  (6, 5)  
The number of inversion can be formed from the array is:  5

الأجوبة

/*Write a program in C to count the number of inversion in a given array*/

#include <stdio.h>
int inv_count(int arr1[], int n)
{
    int inversionCtr = 0;
    printf("The inversions are: ");
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = i + 1; j < n; j++)
			if (arr1[i] > arr1[j])
             {
               printf("(%d, %d)  ",arr1[i],arr1[j]);
               inversionCtr++;
             }
    }
    return inversionCtr;
}

int main()
{
    int arr1[] = { 1, 9, 6, 4, 5 };
    int n = sizeof(arr1)/sizeof(arr1[0]);
    int i;
	//------------- print original array ------------------	
	printf("The given array is :  ");
	for(i = 0; i < n; i++)
	{
	printf("%d  ", arr1[i]);
    } 
	printf("\n");
//------------------------------------------------------     
    printf("\nThe number of inversion can be formed from the array is:  %d", inv_count(arr1, n));
    return 0;
}
هل كان المحتوى مفيد؟

تبحث عن مدرس اونلاين؟

محتاج مساعدة باختيار المدرس الافضل؟ تواصل مع فريقنا الان لمساعدتك بتأمين افضل مدرس
ماهو التخصص الذي تبحث عنه؟
اكتب هنا...