I can' believe my own eye, but it happens...there is a bug in
ArrayList.Binar ySearch!! It should be such a simple function......
Here is the detail. (I'm using C#, don't know if this is C#'s problem
or the whole framework's problem.
ArrayList test = new ArrayList();
test.Add(10);
test.Add(7);
test.Add(2);
test.BinarySear ch(10);
the Search would return -4 instead of 0!! When you debug it, you see
in the variable test is normal:
test[0] = 10, test[1] = 7, test[2] = 2.
Who wrote this function....... ...
Homa Wong 4 4527
Homa,
In order for the BinarySearch to work, you need to have a Sorted list!
As by definition a binary search can only search sorted values!
For details see: http://msdn.microsoft.com/library/de...earchTopic.asp
Which states "Uses a binary search algorithm to locate a specific element in
the sorted ArrayList". Notice the word sorted in there!
Seeing as your list is sorted in descending order, you will need to use the
overloaded BinarySearch function that accepts a Comparer object that does
descending comparisons, as the default comparison will do ascending
comparisons!
Hope this helps
Jay
"Homa" <ho******@yahoo .com> wrote in message
news:a9******** *************** ***@posting.goo gle.com... I can' believe my own eye, but it happens...there is a bug in ArrayList.Binar ySearch!! It should be such a simple function......
Here is the detail. (I'm using C#, don't know if this is C#'s problem or the whole framework's problem.
ArrayList test = new ArrayList();
test.Add(10); test.Add(7); test.Add(2);
test.BinarySear ch(10);
the Search would return -4 instead of 0!! When you debug it, you see in the variable test is normal:
test[0] = 10, test[1] = 7, test[2] = 2.
Who wrote this function....... ...
Homa Wong I can' believe my own eye, but it happens...there is a bug in ArrayList.Bina rySearch!!
No there isn't. The list must be sorted (in ascending order), but
yours obviously isn't.
Mattias
--
Mattias Sjögren [MVP] mattias @ mvps.org http://www.msjogren.net/dotnet/
Please reply only to the newsgroup.
Homa:
No, it's not bug. Binary Searches depend on a Sorted List, and in your
example, it's not sorted. As such, you'll get weird behavior and that's
well documented and not a bug. The whole concept of a Binary search is
built upon ordering, how else coudl you divide and conquer like it does?
Sort your list and it works fine. http://msdn.microsoft.com/library/de...earchtopic.asp
The first line in the documentation makes this pretty clear
HTH,
Bill
"Homa" <ho******@yahoo .com> wrote in message
news:a9******** *************** ***@posting.goo gle.com... I can' believe my own eye, but it happens...there is a bug in ArrayList.Binar ySearch!! It should be such a simple function......
Here is the detail. (I'm using C#, don't know if this is C#'s problem or the whole framework's problem.
ArrayList test = new ArrayList();
test.Add(10); test.Add(7); test.Add(2);
test.BinarySear ch(10);
the Search would return -4 instead of 0!! When you debug it, you see in the variable test is normal:
test[0] = 10, test[1] = 7, test[2] = 2.
Who wrote this function....... ...
Homa Wong
I'm so sorry. I can't believe myself.....sigh ...
Thankyou,
Homa Wong
"William Ryan" <do********@nos pam.comcast.net > wrote in message news:<un******* *******@TK2MSFT NGP11.phx.gbl>. .. Homa:
No, it's not bug. Binary Searches depend on a Sorted List, and in your example, it's not sorted. As such, you'll get weird behavior and that's well documented and not a bug. The whole concept of a Binary search is built upon ordering, how else coudl you divide and conquer like it does?
Sort your list and it works fine.
http://msdn.microsoft.com/library/de...earchtopic.asp
The first line in the documentation makes this pretty clear
HTH,
Bill "Homa" <ho******@yahoo .com> wrote in message news:a9******** *************** ***@posting.goo gle.com... I can' believe my own eye, but it happens...there is a bug in ArrayList.Binar ySearch!! It should be such a simple function......
Here is the detail. (I'm using C#, don't know if this is C#'s problem or the whole framework's problem.
ArrayList test = new ArrayList();
test.Add(10); test.Add(7); test.Add(2);
test.BinarySear ch(10);
the Search would return -4 instead of 0!! When you debug it, you see in the variable test is normal:
test[0] = 10, test[1] = 7, test[2] = 2.
Who wrote this function....... ...
Homa Wong This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Pete Z |
last post by:
Does anyone know why this snippet of code continues to return x with a value
of -1?
Is there an issue with ArrayList.BinarySearch?
ArrayList myAL = new ArrayList();
myAL .Add(1);
myAL .Add(2);
|
by: Sek |
last post by:
Folks,
I have an ArrayList of integers.
I have sorted the list already.
Now, i want to find the index of the first element that is greater than
a given number.
How to accomplish this in C#?
|
by: Mike Dole |
last post by:
I have an arraylist like the one with the Guitar Class sample in
Q316302.
Dim MycolliCol as arraylist
Private Sub FillArray()
MyColliCol.Add(New Colli(1, "STUK", 0))
MyColliCol.Add(New Colli(16, "ROL", 1))
MyColliCol.Add(New Colli(17, "BOS", 2))
MyColliCol.Add(New Colli(18, "DOOS", 0))
MyColliCol.Add(New Colli(19, "PAK", 0))
|
by: Paul Nations |
last post by:
I've got arraylists of simple classes bound to controls. I need to search
through those arraylists to set the correct SelectedItem in the control.
The code looks like:
Public Class DegreeMaintenance
Private arrCipCodes As New ArrayList
'populate reader with data
With rdr
Do While .Read
arrCipCodes.Add(New CipCode(.GetString(0), .GetString(1)))
|
by: Henry Padilla |
last post by:
I have a list of strings and I would like to insert them in order as they
come up.
I am trying to use ArrayList.BinarySearch which (theoretically) returns the
negative bitwise compliment. And I should be able to find the index of the
element one higher than where I should insert.
How?
I'm not getting it.
| |
by: JohnR |
last post by:
I have an arraylist of string values. I would like to search the arraylist
to find the index of a particular string and I would like the search to be
case insensitive.
dim al as new arraylist
al.add("one")
al.add("two")
dim x as integer = al.indexof("ONE") I would like this to find the match
and return 0
|
by: John Veldthuis |
last post by:
I have an ArrayList set up with a set of class objects.
The class has 3 strings in it and are as follows
ProdID
GSP
Description
Okay now problem with getting all these into the list and displaying them correctly and manipulating
things except for one thing.
|
by: garyusenet |
last post by:
My Array list contains a collection of InternetExplorer object.
One of properties of this object is HWND.
I'm trying to search my arraylist for the InternetExplorer object that
has a certain value for its HWND property. But i don't know the syntax
to use.
I have tried many things, the latest I have tried is: -
|
by: Guy |
last post by:
Is there a better way to search identical elements in a sorted array
list than the following:
iIndex = Array.BinarySearch( m_Array, 0, m_Array.Count,
aSearchedObject );
aFoundObject= m_Array;
m_ResultArray.Add ( aFoundObject);
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |