A job for pointers?

Discussion in 'Mac Programming' started by farmerdoug, Feb 13, 2012.

  1. farmerdoug, Feb 13, 2012
    Last edited: Feb 13, 2012

    macrumors 6502a

    Joined:
    Sep 16, 2008
    #1
    Have just started to look at this but always well come help.

    I need to match a pair of numbers in columns 3 and 4, so that I can get the numbers in cols 1 and 2.

    Thanks.
     

    Attached Files:

  2. macrumors 68000

    Joined:
    Mar 29, 2009
    Location:
    USA
    #2
    Why do you think you would need pointers?
     
  3. thread starter macrumors 6502a

    Joined:
    Sep 16, 2008
    #3
    Because I think that the data has to go into a structure more complicated that a simple array. It's just a gut feeling. I don't care if you can do it without pointers.
     
  4. macrumors 603

    mobilehaathi

    Joined:
    Aug 19, 2008
    Location:
    The Anthropocene
  5. macrumors 603

    Joined:
    Aug 9, 2009
    #5
    Combine columns 1 & 2 into a single number. Do the same for columns 3 & 4. Then lookup the number c3:c4 and get the number c1:c2. Then split c1:c2 back into two separate numbers.

    For example, if the value in column 2 (call it c2) is in the range [0-9999], then the combined number c1:c2 is simply c1 * 10000 + c2. Assuming both c1 and c2 are non-negative integers.

    You get c1 by dividing c1:c2 by 10000 (because integer division truncates). You get c2 from c1:c2 mod 10000.

    Same principle applies to numbers in column 3 (c3) and column 4 (c4). Combine, store, lookup, uncombine.

    Oh, and make sure you choose a type for the combined numbers that's big enough to hold the full range. Since you haven't specified the range, I'm not going to guess.


    A suitable structure for mapping c3:c4 back to c1:c2 depends on how many times you expect to be doing the lookup, how fast it needs to happen, and how many total items there are. A solution could be a simple array, a sparse array, a hashtable, a tree, etc. It could be entirely in RAM, or partly in RAM and partly on disk. It depends entirely on whether you're talking about thousands, millions, or billions of items, and minutes, seconds, or milliseconds of lookup time.
     
  6. macrumors 6502

    Joined:
    Mar 8, 2004
    #6
    You could also use an on file SQL database like SQLite. Perhaps a little overkill for this data set but its not a bad skill to practice.
     

Share This Page