Zanjo_Betchi

Untitled

Aug 6th, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void print(int arr[],int length){
  4.     for (int i =0;i<length;i++)
  5.         cout <<arr[i] <<" ";
  6.     cout << endl;
  7. }
  8. void swap(int *a, int *b){
  9.     int temp = *a;
  10.     *a = *b;
  11.     *b = temp;
  12. }
  13. int partition(int arr[], int start, int end){
  14.     int pIndex = start;
  15.     for(int i = start;i<end;i++){
  16.         if(arr[i]<arr[end]){
  17.             swap(&arr[i],&arr[pIndex]);
  18.             pIndex++;
  19.         }
  20.     }
  21.     swap(&arr[pIndex], &arr[end]);
  22.     return pIndex;
  23. }
  24. void quicksort(int arr[],int start, int end){
  25.     if (start>=end) return;
  26.     int pIndex = partition(arr,start,end);
  27.     quicksort(arr,start,pIndex-1);
  28.     quicksort(arr,pIndex+1,end);
  29. }
  30. void findPair(int arr[], int length, int key){
  31.     quicksort(arr,0,length-1);
  32.     //print(arr,length);
  33.     int i =0,j=1;
  34.     while(i<length && j<length){
  35.         if(abs(arr[i] - arr[j]) == key){
  36.             cout<< arr[i] <<" "<<arr[j] << endl;
  37.             i++;j++;
  38.         }
  39.         else if (abs(arr[i] - arr[j]) < key) j++;
  40.         else i++;
  41.     }
  42. }
  43. int main(){
  44.     int arr[] = {4,2,5,8,21,34,10}, key =24, length = sizeof(arr)/sizeof(arr[0]);
  45.     findPair(arr,length,key);
  46.  
  47.     return 0;
  48. }
Add Comment
Please, Sign In to add comment