Example #1
0
//closest to zero sum
void minAbsSumPair(int A[], int n)
{
	/* Array should have at least two elements*/
  if(n < 2)
  {
    cout<<"Invalid Input";
    return;
  }

  Sorting *obj = &Sorting();
  obj->SetArray(A, n);
   obj->InsertionSort();

// left and right index variables
  int l = 0, r = n-1;
  int sum,minsum=A[r];
  int  min_l,min_r;
  while(l<r)
  {
	   sum=A[l]+A[r];
	   if(abs (minsum) > abs(sum))
	   { minsum=sum;
	      min_l = l;
         min_r = r;
	   }
	   if(sum >= 0)
		   r--;
	   else
           l++;
  }

 cout<<"min sum is "<<A[min_l]<< " + "  <<A[min_r]<<" = "<< minsum;     

}
Example #2
0
bool CheckDuplicacy(int *Arr,int len)
 {
  Sorting *obj = &Sorting();
  obj->SetArray(Arr, len);
  obj->InsertionSort();
  for (int i=0;i<len;i++)
  { if (Arr[i]=Arr[i+1])
     return true;
  }
  return false;
 }
Example #3
0
int hasArrayTwoCandidates(int A[], int size, int k)
{
  Sorting *obj = &Sorting();
  obj->SetArray(A, size);
  obj->InsertionSort();

  int left=0;
  int right=size-1;
  while(left<right)
   { 
      if (A[left]+A[right] == k )
      {  cout<<"number are "<<A[left] <<" ,"<<A[right]<<endl;
          return 1;
         }
      if ( A[left]+A[right] < k)
       left++;
      else
       right--  ;
    }
 return 0;
}
Example #4
0
int  MaxOccurance(int *Arr,int len)
{
	int currentcount=0,maxc=0;

  Sorting *obj = &Sorting();
  obj->SetArray(Arr, len);
  obj->InsertionSort();
  int currentcandidate=Arr[0],maxcandidate = Arr[0];
  for(int i=0;i<len;i++)
  {  if(Arr[i]==currentcandidate)
     currentcount++;
     else
      {
		  currentcandidate=Arr[i];
          currentcount=1;
     }
    if(currentcount>maxc)
	{  
		maxc=currentcount;
	    maxcandidate=currentcandidate;
	}
  }
 return maxcandidate;
}