public static void Main()
Console.WriteLine("Dizi n sayisini giriniz");
int n = Convert.ToInt32(Console.ReadLine());
Console.Write("eleman - {0} : ", i);
arr[i] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("k degerini giriniz \n");
int k = Convert.ToInt32(Console.ReadLine());
int x = arr[arr.Length/2];
Console.WriteLine("test:"+ x);
printKclosest(arr, x, k);
static int findCrossOver(int []arr, int low,
int mid = (low + high)/2;
if (arr[mid] <= x && arr[mid+1] > x)
return findCrossOver(arr, mid+1,
return findCrossOver(arr, low, mid - 1, x);
static void printKclosest(int []arr, int x,
int l = findCrossOver(arr, 0, n-1, x);
while (l >= 0 && r < n && count < k)
if (x - arr[l] < arr[r] - x)
Console.Write(arr[l--]+" ");
Console.Write(arr[r++]+" ");
while (count < k && l >= 0)
Console.Write(arr[l--]+" ");
while (count < k && r < n)
Console.Write(arr[r++] + " ");