Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Fast way to search the table for two columns closest values

  1. Mar 19, 2008 #1

    I got one table of four columns.
    Temperature, Field, Vhall and Vdrive.

    Table contains the 1000 rows.

    I am given the Vhall_maesured and Vdrive_measured values.

    I want to find out, which row in the table has the closest values
    for Vhall and Vdrive to corresponding Vhall_maesured and Vdrive_measured.

    Is there any mathematical way to find the closest row quickly.

    If we can't then, we can devide this problem further:
    We can have
    Vhall_min and Vhall_max
    Vdrive_min and Vdrive_max

    And in the table we want to find any of the row( there can be more than one
    but we are fine if we find any one) where Vhall and Vdrive fall between the above min and max

    I know computer programming and finally I want to use it in my program. Right now I am
    checking each row sequencially. But I am looking the fatest to reach that point.

    I have used one another method i.e. binary search and linear search combine but I am
    thiking if there any way using maths of the matrix or vectro to find the row quickest.

  2. jcsd
  3. Mar 22, 2008 #2

    Gib Z

    User Avatar
    Homework Helper

    Im not sure if you can do this because I dont program, but;

    Make a third column which gives the values of the differences of the 2 other columns. Then use the (Third column)_min function.
  4. Mar 22, 2008 #3
    There is no faster way than O(n) to search an unordered list!

    You mention you are using binary search, so maybe we can assume the data is sorted (e.g. the variables Vhall and Vdrive are monotonicall increasing)?

    Without additional assumptions on the data, then linear search is the fastest method. Out of curiosity why is speed even a consideration when you are considering only a 1000 data points in the year 2008? We could have found the minimum of thousands of such data sets in the time you or I spent typing these messages!
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?