0 / 0 / 0
Регистрация: 17.12.2017
Сообщений: 79
1

По алгоритму написать код (Sentinel-Linear-Search)

18.03.2018, 16:07. Показов 1390. Ответов 6
Метки нет (Все метки)

Ребят, помогите пожалуйста написать по этому алгоритму код.
С алгоритмами и написанием всё очень туго

Procedure Sentinel-Linear-Search(A,n,x)
Inputs: A: an array
n: the number of elements in A to search through
x: the value being seatched for
Output: Eiter an index i for which A[i]=x, or the special value Not-Found, which could be any invalid index into the array, such as 0 or any negatove integer.


1.Save A[n] into last and then put x into A[n].
2.Set i to 1.
3. While A[i] !=x, do the following:
A. increment i.
4.Restore A[n] from last.
5. If i<n or A[n]=x, then return the value of i as the output.
6. Otherwise, return Not-Found as the output.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2018, 16:07
Ответы с готовыми решениями:

Sentinel Linear Search
объясните почему A = last ? это же будет вне границ массива

По алгоритму написать код
Ребят, помогите пожалуйста по алгоритмам написать код. В этом вообще не сильна.. как в...

По алгоритму написать код
Ребят, помогите пожалуйста по алгоритмам написать код. В этом вообще не сильна.. как в...

Нужно написать код программы по алгоритму
Есть алгоритм нужно по нему написать программу. И если можно с комментариями. Большое спасибо...

6
61 / 62 / 28
Регистрация: 10.01.2018
Сообщений: 360
18.03.2018, 17:11 2
Ну собственно вот, уже готовый
0
0 / 0 / 0
Регистрация: 17.12.2017
Сообщений: 79
18.03.2018, 21:23  [ТС] 3
Цитата Сообщение от Sternman Посмотреть сообщение
Ну собственно вот, уже готовый
С джавой ещё не знакомилась даже. Нужен код на C#
0
61 / 62 / 28
Регистрация: 10.01.2018
Сообщений: 360
18.03.2018, 22:38 4
Цитата Сообщение от Lisssss Посмотреть сообщение
С джавой ещё не знакомилась даже.
а шарп видели хотя бы в книжке?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// алгоритм
private string linearSearch(A,n,x)
{
    var answer = "not found";
    for (int i=0; i<n; i++){
        if (A[i]==x){
            answer = i.ToString();
        }
    }
    return answer;
}
// инициализация
int[] A = { 1, 4, 6, 8, 9, 54, 2, 43 };
var n = A.Length;
var x = 2;
//тест
var res = linearSearch(A,n,x);
Console.WriteLine(res);
Называется найди 10 отличий)

Добавлено через 19 минут
Lisssss, забыл что вам же со сторожем нужно)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Program
    {
        static void Main(string[] args)
        {
            // инициализация
            int[] A = { 1, 4, 6, 8, 9, 54, 2, 43 };
            var n = A.Length;
            var x = 54;
            //тест
            Console.WriteLine(linearSearchWithSentinel(n, x, A));
            Console.ReadKey();
        }
 
        private static string linearSearchWithSentinel(int n, int x, params int[] A)
        {
            var last = A[n - 1];
 
            var i = 0;
 
            A[n - 1] = x;
 
            while (A[i] != x)
            {
                i++;
            }
 
            A[n - 1] = last;
 
            if (i < n || A[n] == x)
            {
                return (i+1).ToString();
            }
            else
            {
                return "Not found";
            }
        }
    }
На первый код не обращайте внимания, там обычный линейный поиск и с некоторыми ошибками синтаксическими.
0
0 / 0 / 0
Регистрация: 17.12.2017
Сообщений: 79
19.03.2018, 11:41  [ТС] 5
Цитата Сообщение от Sternman Посмотреть сообщение
На первый код не обращайте внимания
Спасибо вам большое за помощь.
Можете помочь вот с этим ещё алгоритмом? Пожалуйста. Не нашла его на C# вообще.


Procedure Recursive-Linear-Search(A,n,i,x)
Inputs: как и выше данные, но с дополнительным параметром i
Output: The index of an element equaling x in the subarray from A[i]through A[n], or Not-Found if x does not appear in this subarray.

1. If i>n, then return Not-Fround.
2. Otherwise (i<=n), if A[i]=x, then return i.
3. Otherwise (i<= n and A[i] !=x), return Recursive-Linear-Search(A,n,i+1,x) .
0
61 / 62 / 28
Регистрация: 10.01.2018
Сообщений: 360
19.03.2018, 12:53 6
Цитата Сообщение от Lisssss Посмотреть сообщение
Можете помочь вот с этим ещё алгоритмом?
Вы хотите чтоб я всей вашей группе лабу сделал что-ли?))
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// алгоритм
function linearSearch(A,n,i,x){
  if (i>n){
    return 'Not found';
  }else if (A[i]==x){
    return i;
  }else{
    return (linearSearch(A,n,i+1,x))
  }
}
                       
// инициализация
var A = [1,4,6,8,9,54,2,43];
var n = A.length;
var x = 2;
//тест
var res = linearSearch(A,n,0,x);
alert (res);
Хоть чуть-чуть подумайте головой, по примеру выше элементарно повторить. Вы справитесь!
0
0 / 0 / 0
Регистрация: 17.12.2017
Сообщений: 79
19.03.2018, 13:16  [ТС] 7
Цитата Сообщение от Sternman Посмотреть сообщение
Вы справитесь!
Да, спасибо. Всё получилось
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2018, 13:16
Помогаю со студенческими работами здесь

Написать работающий код, согласно алгоритму метода Пауэлла
Написал код, согласно алгоритму метода Пауэлля, но работает не совсем корректно. Трудности...

Объясните код (binary search)
Всем привет! Вот есть код, осуществляющий бинарный поиск: auto beg = text.begin(), end =...

Дописать код по алгоритму
Здравствуйте, вроде бы, самое сложное уже сделано. осталось лишь дописать немного. помогите. ...

Разобрать код по алгоритму
Тексты надо переписывать в сообщение! сделали контрольную и защитить не не могу. помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru