Hi all, so I have been practicing with linear search, binary search, and various other sorting techniques. However, I have only had success with my different sorting methods correctly sorting my randomly generated array. The problem I am currently having is that my linear array should be finding the location of my middle three elements in my original unsorted array and returning their location, while my binary array should just be searching an already sorted array(since binary requires the array to be sorted) and returning the location of the middle three values there. By location I mean index location. I believe my binary is working as intended, but my linear does not seem to want to cooperate and as much as I can figure out, it should be printing out its locations in the random array. It does this somewhat accurately when I comment out other code to narrow in on the problem, but at the sacrifice of the binary method working as intended. I'm not sure where to go from here. Here is my code:
You pass a double array named "elements" to this method, and then the method doesn't use it at all. Instead it uses the double array which is an instance variable of the class. On the other hand you have
which does use the double array passed to the method, and which ignores the double array which is an instance of the class.
So obviously there's some confusion with the design of this Search class. What's the purpose of the array which it contains? Are the search methods supposed to act on that array? If so then why do they have another array as first parameter? On the other hand if they are supposed to act on the arrays passed as first parameter, then why does the Search object contain an array which isn't used?
To be completely honest, I'm not entirely sure. When I was having trouble with my linear method only returning the value -1, my teacher had me add in a lot of that extra code that you referenced above. I'm not sure what she was trying to have me do, as what she told me to add didn't seem to fit. To the best of my understanding each parameter is supposed to be referenced from the SortSearchApp class which print out all of this information. Hence this code:
which should be taking the original unsorted array from the SortSearchApp class and running it through the linear search method while comparing it to the array3merge which is already sorted to find the middle values in array3merge and find their equivalent location in the unsorted array. Im not really sure why I have those extra arrays in my Search class, my teacher had me add those even though they made no sense as to why they were added.
In the meantime, you're asserting that array3merge is a sorted array. I don't understand that because I don't see a declaration for it and I don't see any code which causes it to be sorted, or even to contain any data at all.
If you're looking for the position of array3merge in the array array3merge then you don't need a search, binary or otherwise. The position of that element is at index 14: that's what the "" means there.
Was reading your initial post - it was hard to follow.
Can you identify one issue (first one) out of many you have, so we'd do one step at a time.
Please specify in which lines range you think that issue appears or method name. Please specify what inputs you were giving and what was exactly wrong.
when in doubt - just merge, and never rebase
expectation is the root of all heartache - shakespeare. tiny ad: