Скачиваний:
10
Добавлен:
01.05.2014
Размер:
908 б
Скачать
// binary search and quick sort demo

void QuickSort(int Arr[], int L, int R)
{
  int i;
  int j;
  int p;
  int t;
  do {
    i = L;
    j = R;
    p = Arr[(L + R) >> 1];
    do {
      while (Arr[i] < p)
        i++;
      while (Arr[j] > p)
        j--;
      if (i <= j) {
        t = Arr[i];
        Arr[i] = Arr[j];
        Arr[j] = t;
        i++;
	j--;
      }
    } while (i <= j);
    if (L < j)
      QuickSort(Arr, L, j);
    L = i;
  } while (i < R);
}


int Find(int arr[], int count, int value)
{
	int l, r, c = 0;
	l = 0;
	r = count - 1;
	while (l <= r)
	{
		c = (l + r) >> 1;
		if (arr[c] < value)
			l = c + 1;
		else if (arr[c] > value)
			r = c - 1;
		else
			return c;
	}
	return count + 1;
}

int main()
{
  int a[100];
  int i;
  for (i = 0; i < 100; i++)
    a[i] = 101 - i;
  QuickSort(&a, 0, 99);
  putn(Find(&a, 100, 3));
}
Соседние файлы в папке Tests