diff --git a/README.md b/README.md index a2518a6..642960b 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ TODO: question14.c - [Quick Sort](/arrays/question5.c) - [Bubble Sort](/arrays/question6.c) - [Counting Sort](/arrays/question7.c) +- [find a pair in an array whose sum is X](/arrays/question8.c) +- [Moore Voting algorithm to find majority element in an array](/arrays/question9.c) # Topic1: Introduction diff --git a/arrays/question8.c b/arrays/question8.c index 49f6525..64aa86e 100644 --- a/arrays/question8.c +++ b/arrays/question8.c @@ -69,4 +69,51 @@ int main(){ findPairs(a,length, sum); } +/* +METHOD3: using quick sort technique +but finding if a pair exists or not +*/ +#include +#include +int cmpfunc(const void*a, const void*b){ + return (*(int*)a-*(int*)b); +} + +int findPairs(int arr[], int size, int sum){ + int left, right; + + qsort(arr,size,sizeof(int),cmpfunc); + + left = 0; + right = size - 1; + while(left +#include + +int main(){ + + int index,voter, votes=0, counter=0; + int a[] = {2,2,5,6,2,2}; + int length = sizeof(a)/sizeof(a[0]); + //checking voter and votes + for(index = 0; index= 1){ + + for(index=0; index length/2){ + printf("the element that occurs more than n/2 times is %d\n", voter); + }else{ + printf("no element found\n"); + } + + } + +} \ No newline at end of file