Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "iostream"
- #include "stdlib.h"
- #define N 18
- using namespace std;
- int search_s(int* k, int n, int key);
- int search_q(int* k, int n, int key);
- int search_t(int* k, int n, int key);
- int search_bin(int* k, int n, int key);
- int search_s(int* k, int n, int key)
- {
- int f = 0;
- for (int i = 0; i < n; i++)
- {
- if (k[i] == key) {
- printf("Элемент с индексом %d равен %d\n", i, key);
- f = 1;
- }
- }
- if (f == 0) printf("Элементов равных number в массиве нет!\n");
- return 0;
- }
- int search_q(int* k, int key)
- {
- int i = 0;
- int farr[18];
- for (i = 0; i < 17; i++)
- {
- farr[i] = k[i];
- }
- farr[17] = key;
- for (i = 0; ; i++)
- {
- if (farr[i] == key)
- {
- break;
- }
- }
- if (i <= 16)
- {
- printf("Алгоритм поиска Q нашел соответсвие\n");
- return 1;
- }
- else
- {
- printf("Алгоритм поиска Q не нашел соотвествие\n");
- return 0;
- }
- }
- int search_t(int* k, int n, int key)
- {
- for (int i = 0; i < n; i++)
- {
- if (key <= k[i] )
- if (k[i] == key) {
- printf("Элемент с индексом %d равен %d\n", i, key);
- break;
- }
- else printf("Элементов равных number в массиве нет!\n");
- }
- return 0;
- }
- int search_bin(int* k, int n, int key) {
- int l = 0; // нижняя граница
- int u = N - 1; // верхняя граница
- while (l <= u) {
- int m = (l + u) / 2;
- if (k[m] == key) return m;
- if (k[m] < key) l = m + 1;
- if (k[m] > key) u = m - 1;
- }
- return -1;
- }
- void main()
- {
- system("chcp 1251");
- system("cls");
- cout << "S алгоритм" << "\n";
- int mass_one[N];
- for (int i = 0; i < N; i++)
- {
- if (i % 2 == 0)
- mass_one[i] = i + 2;
- else mass_one[i] = i - 2;
- }
- int point;
- int number;
- printf("Введите искомое число: ");
- scanf_s("%d", &number);
- for (int i = 0; i < N; i++)
- {
- cout << mass_one[i] << " ";
- }
- cout << endl;
- search_s(mass_one, N, number);
- point = 0;
- cout << " Q алгоритм" << "\n";
- search_q(mass_one, number);
- cout << "T алгоритм" << "\n";
- int tmp;
- for (int i = 0; i < N-1; i++) // i - номер прохода
- {
- for (int j = 0; j < N-1; j++) // внутренний цикл прохода
- {
- if (mass_one[j + 1] < mass_one[j])
- {
- tmp = mass_one[j + 1];
- mass_one[j + 1] = mass_one[j];
- mass_one[j] = tmp;
- }
- }
- }
- for (int i = 0; i < N; i++)
- {
- cout << mass_one[i] << " ";
- }
- cout << endl;
- search_t(mass_one, N, number);
- cout << "BIN алгоритм" << "\n";
- point = search_bin(mass_one, N, number);
- if (point == -1)
- printf("Элементов равных number в массиве нет!\n");
- else
- printf("Элемент с индексом %d равен %d", point, number);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement