Click here to Skip to main content
15,745,509 members
Please Sign up or sign in to vote.
1.00/5 (6 votes)
See more:
Implement a generic method, Search, that searches the specified element within an array using linear search algorithm. Method Search should compare the value with each element in its array parameter until the value is found or until the end of the array is reached. If the value is found, return its location in the array; otherwise return -1

What I have tried:

I am trying but not get the answer
Posted
Updated 6-Jun-23 6:39am
Comments
CPallini 31-May-23 7:34am    
What exactly did you try?
PIEBALDconsult 31-May-23 16:36pm    
Uhhh... that's already built into the .net framework, sooo... maaaybe just read the documentation perhaps?

While we are more than willing to help those that are stuck, that doesn't mean that we are here to do it all for you! We can't do all the work, you are either getting paid for this, or it's part of your grades and it wouldn't be at all fair for us to do it all for you.

So we need you to do the work, and we will help you when you get stuck. That doesn't mean we will give you a step by step solution you can hand in!
Start by explaining where you are at the moment, and what the next step in the process is. Then tell us what you have tried to get that next step working, and what happened when you did.

If you are having problems getting started at all, then this may help: How to Write Code to Solve a Problem, A Beginner's Guide[^]
 
Share this answer
 
C#
using System.Collections.Generic;
.
.
.
public static int LinearSearch<T>(T[] array, T item) // O(n)
{
    for (int i = 0; i < array.Length; i++)
        /* array[i] == item */
        if (Comparer<T>.Default.Compare(array[i], item) == 0)
            return i;

    return -1; // Not found
}

For other different Algorithms with Generics in C# see here
 
Share this answer
 
v2
Comments
Dave Kreskowiak 31-May-23 8:00am    
What is it with people who do other people's homework for them? You're not helping them. The point of the assignments is to think about the problems. You cannot do that for them!
jekin77 31-May-23 8:10am    
I am not a teacher to teach. It's better to learn from the mistakes of others than your own. And when someone asks for help, what prevents this person from helping. IMHO
Dave Kreskowiak 31-May-23 8:23am    
"It's better to learn from the mistakes of others than your own."
I call BULLSHIT! What you are doing is removing the opportunity of figuring out where the pitfalls are in their thinking. The point of the assignment is to teach HOW to think about problems. By doing homework for them, you are now putting up guard rails on the path of problem solving, teaching them WHAT to think instead.

You cannot teach problem solving skills by doing work for someone else. You can, however, point them in the direction of what to think about WITHOUT writing any code.

What you did was remove developing the skills to read documentation and removed experimentation and failure from the OP's learning process, something that's vital to learn in this business.
jekin77 31-May-23 8:34am    
I repeat - I AM NOT A TEACHER. I just helped. And if your ass explodes from the fact that someone has a different opinion than you, then these are your personal problems. And don't pass them on to others. PS - and I myself learned a lot of things by reading someone else's code and delving into solutions to various problems.
Dave Kreskowiak 31-May-23 8:48am    
"I just helped."
That's the point! You THINK you helped, but you didn't. Why? Because
"I AM NOT A TEACHER"
Think about it. If asked to explain the code, do you think the OP is going to have any clue what that code does or why it works? NO, they're not! That's a fail!
I would do this:
C#
public static int
Search<T>
(
  System.Collections.Generic.IList<T> List
,
  T                                   Sought
)
{
  return ( List.IndexOf ( Sought ) ) ;
}

  int[] arr = new int[] { 0 , 1 , 2 , 3 } ;
  int i = Search ( arr , 42 ) ;
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900