Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2012, 03:34   #1
Bezukhoff
 
Регистрация: 26.12.2011
Сообщений: 4
По умолчанию Бинарный поиск.

Доброго времени суток.

Прошу помочь разобраться, почему не работает программа, а именно бинарный поиск.

#include <stdio.h>



Код:
#include <stdio.h>



// Сортировка обменом (пузырек)

void BubbleSort(int Array[], int n)
{
	int i, j, x;
	for (i=0; i<n; i++)
		for (j=n-1; j>=i; j--)
		{
			if (Array[j-1]>Array[j])
			{
				x=Array[j-1];
				Array[j-1]=Array[j];
				Array[j]=x;
			}
		}

}

// Сортирока выбором

/*void ChoiceSort(int Array[], int n)
{
	int i, j, x, k;

	for (i=0; i<n-1; i++)
	{
		k=i;
		x=Array[i];
		for (j=i+1; j<n-1; j++)
			if (Array[j]<x)
			{
				k=j;
				x=Array[j];
			}
		Array[k]=Array[i];
		Array[i]=x;
	}
}*/

// Сортировка простыми включениями

/*void InsertSort(int Array[], int n)
{
	int i, j, x;

	for (i=0; i<n-1; i++)
	{
		j=i+1;
		x=Array[j];
		while (j>0 && Array[j-1]>x)
		{
			Array[j]=Array[j-1];
			j--;
			Array[j]=x;
		}
	}

}*/

// Бинарный поиск

int BinSearch(int Array[], int n, int index) 
{
  int l = 0;					// нижняя граница
  int u = n;				// верхняя граница

  while (l <= u) 
  {
    int m = (l + u) / 2;			// середина
    if (Array[m] == index) return m; 
    if (Array[m] < index) l = m + 1;
    if (Array[m] > index) u = m - 1;
  }
  return -1;
}

void main()
{
	const int n=3;
	
	int i, c;
	int Arr[n];

	printf("Please, input elements:\n");
	for (i=0; i<n; i++)
	{
		printf("A[%d]=", i);
		scanf("%d", &Arr[i]);
	}

	printf("\nArray:\n");
	for (i=0; i<n; i++)
		printf("%d", Arr[i]);
	printf("\n\n");

	BubbleSort(Arr, n);

	printf("Sorted array:\n");
	for (i=0; i<n; i++)
		printf("%d\n\n", Arr[i]);

	printf("Please, insert element you want to find(this element may/may not exist in the array).\n");
	printf("If element does not exist, you will receive -1 on the screen else index.\n");
	printf("Element:");
	//scanf("%d\n", &index);
	c=getchar();
	BinSearch(Arr, n, c);
	//printf("%d", i);
	

	

	
	
	printf("\n\n");
	
}
Bezukhoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бинарный поиск. алексей2011 Помощь студентам 0 01.07.2011 04:32
С++ Бинарный поиск Натаса Общие вопросы C/C++ 0 03.05.2011 09:50
Бинарный поиск Виктория7777 Помощь студентам 6 13.01.2011 16:07
Бинарный поиск 0IceCube0 Паскаль, Turbo Pascal, PascalABC.NET 1 13.04.2010 15:52
Бинарный поиск Gendalf Помощь студентам 1 07.07.2007 22:09